[MySQL]Field ‘カラム名’ doesn’t have default valueエラーについて

別のサーバーに入れ替えてアプリをインストールしようとしたら下記のようなエラーがでた。

SQLSTATE[42000]: Syntax error or access violation: 1101 BLOB/TEXT column ‘hogehoge’ can’t have a default value
なにこれ?

どうも、Mysql5.6の仕様変更により、SQL文のチェックが厳しくなった影響のようです。

my.confで

sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
の行を
sql_mode=NO_ENGINE_SUBSTITUTION
に変更すれば元に戻るようです。

出来ればデフォルトのままで使ったほうが良いですが、既存のアプリなどでどうしても難しい場合は上記変更が必要です。

タイトルとURLをコピーしました