「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > MySQL で「「create_date」フィールドのデフォルト値が無効です」というメッセージが表示されるのはなぜですか? それを修正するにはどうすればよいですか?

MySQL で「「create_date」フィールドのデフォルト値が無効です」というメッセージが表示されるのはなぜですか? それを修正するにはどうすればよいですか?

2024 年 11 月 21 日に公開
ブラウズ:733

Why Am I Getting \

"「create_date」フィールドのデフォルト値が無効です: NO_ZERO_DATE SQL モードについて"

最近の SQL create ステートメントで、エラーが発生しました以下の「'create_date' のデフォルト値が無効です」 SQL:

CREATE  TABLE IF NOT EXISTS `erp`.`je_menus` (
    ...
    `create_date` TIMESTAMP NOT NULL DEFAULT  '0000-00-00 00:00:00',
    ...
) 

このエラーを解決するには、MySQL SQL モード、特に NO_ZERO_DATE 設定を理解することが重要です。この設定では、厳密モードで有効な日付として「0000-00-00」を使用することが禁止されます。これは、SQL がブール値を数値 (TRUE = 1、FALSE = 0 など) として扱い、日付を参照点からの日数を表す整数として格納するために発生します。したがって、「0000-00-00」を使用すると、ブール値に使用される「0」値と競合します。

この問題に対処するには、次のオプションを検討してください:

  • NO_ZERO_DATE モードを無効にする: SQL ステートメントに、ステートメント 'SET SQL_MODE = "NO_ZERO_IN_DATE";' を含めます。テーブルを作成する前に。これにより、NO_ZERO_DATE モードが一時的に無効になり、create_date のデフォルトとして「0000-00-00」を定義できるようになります。
  • 有効なデフォルト値を使用します: '0000-00-00 00 を置き換えます:00:00' は、SQL ステートメント内の有効なデフォルト日付 (状況に応じて 'CURRENT_TIMESTAMP' または NULL など)
  • IGNORE オプションを使用します: どうしても「0000-00-00 00:00:00」を使用する必要がある場合は、SQL ステートメントに IGNORE オプションを含めます。ただし、これはデータの不整合を引き起こす可能性があるため、通常はお勧めできません。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3