MySQL 5.7 Data truncated for column ‘xxx’ at row 1

MySQL 5.7にアップグレードしましたら、思わぬ問題が出てきました。

カラムcol1はENUM型ですが、”は定義範囲に入ってしません。問題はここになります。

なぜ、MySQL5.6で行けたのに、5.7でダメなのか。

ネットを検索しましたが、いろいろ問題の根本に触りもしない答えばかりでした。

再度MySQLの公式ドキュメントをよく読みますと、問題はSQL方式(MODE)にありました。

STRICT_ALL_TABLESSTRICT_TRANS_TABLES が 環境変数SQL_MODEにないことを確認してください。また、無効の日付型を許したい場合は、ALLOW_INVALID_DATESがSQL_MODEにあることを確認してください。

セッション毎に設定したい場合は、下記のSQLを接続後とに実行してください。

/etc/my.cnfで設定する場合は、下記のような語句を入れます。

再起動したら、完了です。

SQL MODEに関して、もっと知りたいなら下記のページをご覧ください。

http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html

以上

Leave a Reply

Your email address will not be published. Required fields are marked *