ホームページ  >  記事  >  データベース  >  MySQL で「「create_date」タイムスタンプ フィールドのデフォルト値が無効です」というエラーが発生するのはなぜですか?

MySQL で「「create_date」タイムスタンプ フィールドのデフォルト値が無効です」というエラーが発生するのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-26 22:19:02854ブラウズ

Why Am I Getting

'create_date' タイムスタンプ フィールドのデフォルト値が無効です

タイムスタンプ列を持つテーブルを作成し、デフォルト値 '0000- を指定する場合00-00 00:00:00' の場合、「'create_date' のデフォルト値が無効です」というエラーが発生する場合があります。このエラーは、MySQL の SQL モード - NO_ZERO_DATE が原因で発生します。

MySQL リファレンス マニュアルによると、NO_ZERO_DATE により、厳密モードで有効な日付として '0000-00-00' が挿入されなくなります。この場合、「create_date」列はタイムスタンプとして定義され、デフォルト値「0000-00-00 00:00:00」が割り当てられました。ただし、SQL モード - NO_ZERO_DATE ではそのような値は禁止されています。

このエラーを解決するには、次のオプションを検討してください:

  • 作成前に S​​ET sql_mode="" コマンドを使用して SQL モード - NO_ZERO_DATE を無効にします。テーブル。
  • 「create_date」列には、「CURRENT_TIMESTAMP」など、「0000-00-00 00:00:00」ではない別のデフォルト値を使用します。
  • ゼロを挿入IGNORE オプションを使用して日付を指定すると、エラーではなく警告が表示されてそのような値を挿入できます。

以上がMySQL で「「create_date」タイムスタンプ フィールドのデフォルト値が無効です」というエラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。