[MySQL] Incorrect datetime value: ‘0000-00-00 00:00:00’ for column エラー対処方法

MySQLを古いバージョンから新しいバーションにした時に、phpMyAdminであるカラムのNullを許可しようとした時に(カラムの構造を変更)「Incorrect datetime value: ‘0000-00-00 00:00:00’ for column」というエラーが発生しました。
[環境] MySQL8.x
これはSQLモードが原因なのでそれを変更します。
ターミナルからMySQLにログインして、下記を実行します。
1 |
SELECT @@GLOBAL.sql_mode; |
デフォルトでは下記の項目が設定されていました
1 |
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION |
MySQL5.6の環境に合わせる場合は、下記のようにします。
1 |
SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES'; |
doesn’t have default valueというエラーが多く出る場合は下記のようにすると直ります。
1 |
SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION'; |
STRICT_TRANS_TABLESを削除します。
関連記事
- [MySQL] 当日と前日の売上データの差を求める方法(自己結合)
- [MySQL]月・年単位でデータを抽出する方法 (DATE_FORMAT)
- [MySQL] AVGを使ってグループごとの平均値を求める方法
- [MySQL]1カラムに登録されたカンマ区切りデータを検索・抽出する方法(FIND_IN_SET)
- [phpMyAdmin] PHP Parse error: syntax error, unexpected ‘@’ ・・・エラー対処方法