ホームページ > データベース > mysql チュートリアル > MySQL で「「create_date」フィールドのデフォルト値が無効です」というメッセージが表示されるのはなぜですか? それを修正するにはどうすればよいですか?

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

DDD
リリース: 2024-10-26 22:41:30
オリジナル
509 人が閲覧しました

Why Am I Getting

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

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

<code class="sql">CREATE  TABLE IF NOT EXISTS `erp`.`je_menus` (
    ...
    `create_date` TIMESTAMP NOT NULL DEFAULT  '0000-00-00 00:00:00',
    ...
) </code>
ログイン後にコピー

このエラーを解決するには、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 オプションを含めます。ただし、これはデータの不整合を引き起こす可能性があるため、通常はお勧めできません。

以上がMySQL で「「create_date」フィールドのデフォルト値が無効です」というメッセージが表示されるのはなぜですか? それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート