时间戳字段的默认值无效
尝试使用以下命令创建表时出现错误“'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中文网其他相关文章!