ホームページ  >  記事  >  データベース  >  タイムスタンプ フィールドを含むテーブルを作成すると、「\'create_date\' のデフォルト値が無効です」というエラーが表示されるのはなぜですか?

タイムスタンプ フィールドを含むテーブルを作成すると、「\'create_date\' のデフォルト値が無効です」というエラーが表示されるのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-30 11:37:27303ブラウズ

Why am I getting the

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

次のテーブルを作成しようとすると、「'create_date' のデフォルト値が無効です」というエラーが発生しますデフォルト値が「0000-00-00 00:00:00」であるタイムスタンプ フィールド。このエラーは SQL モード - NO_ZERO_DATE によってトリガーされます。

NO_ZERO_DATE モードでは、有効な日付として '0000-00-00' を挿入できません。厳密モードの場合、IGNORE オプションを指定した場合でも、この値は禁止されます。非厳密モードでは、日付は受け入れられる可能性がありますが、警告が生成されます。

このエラーを解決するには、NO_ZERO_DATE モードを無効にするか、タイムスタンプ フィールドに別のデフォルト値を使用します。

<code class="sql">SET SQL_MODE = 'ALLOW_INVALID_DATES';</code>

または、タイムスタンプ フィールドに有効なデフォルト値を指定します:

<code class="sql">CREATE TABLE IF NOT EXISTS `erp`.`je_menus` (
    `id` INT(11) NOT NULL AUTO_INCREMENT ,
    `name` VARCHAR(100) NOT NULL ,
    `description` VARCHAR(255) NOT NULL ,
    `live_start_date` DATETIME NULL DEFAULT NULL ,
    `live_end_date` DATETIME NULL DEFAULT NULL ,
    `notes` VARCHAR(255) NULL ,
    `create_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
    `created_by` INT(11) NOT NULL ,
    `update_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP  ,
    `updated_by` INT(11) NOT NULL , 
    `status` VARCHAR(45) NOT NULL ,
    PRIMARY KEY (`id`) ) 
    ENGINE = InnoDB;</code>

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

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