Created_At のデフォルト値が無効です
問題:
によってテーブルを変更しようとしたとき新しい列を追加すると、エラー:
ERROR 1067 (42000): Invalid default value for 'created_at'
タイムスタンプ列を変更していないにも関わらず。
解決策:
エラーは sql_modes から発生しています。これを解決するには:
show variables like 'sql_mode' ;
から次のモードを削除しますsql_mode:
NO_ZERO_IN_DATE NO_ZERO_DATE
これらのモードは、新しい MySQL バージョンにデフォルトで存在します。
グローバル設定:
システム全体の変更の場合、 root として以下を実行します:
set global sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
追加注:
ALTER TABLE investments ADD bank TEXT DEFAULT NOT NULL;
以上がMySQL で列を追加すると「'created_at' のデフォルト値が無効です」というエラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。