レコード挿入時の #1364 - Field doesn't have a default value

MySQLで、varcharがNOT NULLになっているカラムの値を指定せず(NULL値)、INSERT(挿入)するとエラーが出ることがあります。

#1364 - Field '【カラム名】' doesn't have a default value

これはMySQLの設定が、厳格な設定(STRICTモード)になっているためです。

NULL値でも挿入できるようにしたい場合は、my.cnfまたはmy.iniの設定を変更します。

Linuxなら
/etc/my.cnf

Windowsなら
C:\MySQL\my.ini
または
C:\Program Files\MySQL\MySQL Server 5.1\my.ini

sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

この部分のSTRICT_TRANS_TABLESを消します。

sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

設定ファイルを変更したあとには必ずMySQLを再起動しないと、設定は反映されません。

[参考記事]WindowsでMySQLを再起動する方法

スポンサーリンク

関連記事

スポンサーリンク

DATEDIFF関数 日付の差を求める

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る