mysqlはInvalid default value for'created_に出会ったat'のエラー

3770 ワード

テーブルの作成中にInvalid default value for'created_に遭遇しましたat'の間違いは、何が原因なのか分からない.
CREATE TABLE `test` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `updated_at` timestamp NOT NULL DEFAULT '1970-01-01 00:00:00',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

デフォルトのデータは「000-00-00 00 00:00:00」でエラーを報告し、「1970-01-01 00:00:00」でもエラーを報告します.
解決策
まずは次のコマンドでsql_を見てみましょうmode
show variables like 'sql_mode';

クエリの結果は次のとおりです.
ONLY_FULL_GROUP_BYSTRICT_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は、次のコマンドを実行します.
set session sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZE