1. ホーム
  2. mysql

[解決済み] エラー1067 (42000)。created_at'のデフォルト値が無効です。

2022-08-15 06:04:32

質問

テーブルを変更しようとすると、エラーが表示されます。

ERROR 1067 (42000): Invalid default value for 'created_at'

このエラーについてググってみましたが、タイムスタンプを変更しようとしたために発生したようなものしか見つかりませんでした。しかし、ここで私は新しい列を追加しようとしており、私はこのエラーを取得しています。

mysql> ALTER TABLE investments ADD bank TEXT;
ERROR 1067 (42000): Invalid default value for 'created_at'

で、私のテーブルの最後の2つのカラムは created_at であり updated_at .

以下は私のテーブル構造です。

どのように解決するのですか?

この問題は sql_modes . コマンドで現在のsql_modesを確認してください。

show variables like 'sql_mode' ; 

そして、sql_mode "を削除してください。 no_zero_in_date,no_zero_dateを削除してください。 "で動作するようにします。 これは、mysqlの新しいバージョンでのデフォルトのsql_modeです。

コマンドでroot権限でグローバルにsql_modeを設定することができます。

set global sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';