首页  >  文章  >  数据库  >  为什么在创建带有时间戳字段的表时出现“create_date 默认值无效”错误?

为什么在创建带有时间戳字段的表时出现“create_date 默认值无效”错误?

Susan Sarandon
Susan Sarandon原创
2024-10-30 11:37:27302浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn