web-dev-qa-db-ja.com

「#1067 - バックアップ後にAIをリセットしようとしたときの 'post_date'のデフォルト値が無効です」

私は私のWordpressのデータベースをSQLバックアップから復元しました。ただし、そうすることで、すべてのテーブルが自動インクリメントを失いました。

このSQLを使って再度追加しようとしたとき

ALTER TABLE `mercury_posts` CHANGE `ID` `ID` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT;

エラー#1067 - Invalid default value for 'post_date'が発生します。これをどのように修正しますか?

1
SinisterBeard

私は結局、問題のあるデータベースを削除し、作業データベースから再度バックアップしますが、構造とデータを別々にエクスポートすることによって解決しました。

2
SinisterBeard

Post_dateのデフォルト値は0000-00-00 00:00:00です。次のようにsql_mode変数を確認する場合:

show variables like 'sql_mode'; 

... sql_mode変数が表示され、次のようになります:ONLY_FULL_GROUP_BY、STRICT_TRANS_TABLES、NO_ZERO_IN_DATE、NO_ZERO_DATE、ERROR_FOR_DIVISION_BY_ZERO、NO_AUTO_CREATE_USER、NO_ENGINE_SUBSTITUTION

NO_ZERO_IN_DATE、NO_ZERO_DATEなしでsql_mode変数を再度設定する必要があります

したがって、前の例では、sql_modeを次のように設定する必要があります。

SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

次に、sql_mode変数を再度チェックして、正しく変更されていることを確認します。

show variables like 'sql_mode';

その後、制限はなくなります; D

ここで解決策を見つけました: https://stackoverflow.com/a/37696251/50491

2
Carlos Faria