gpt4 book ai didi

mysql - 错误 1067 EndDate 默认值无效

转载 作者:行者123 更新时间:2023-11-29 12:33:58 26 4
gpt4 key购买 nike

有人可以告诉我这个查询中缺少什么吗?它不断出现:

Error 1067: invalid default value for EndDate

CREATE TABLE `course_info`(
`student_id` VARCHAR (35),
`course_id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL,
`module` VARCHAR(45) NOT NULL,
`StartDate` TIMESTAMP,
`EndDate` TIMESTAMP,
`course_Update` TIMESTAMP,
PRIMARY KEY(`course_id`),
FOREIGN KEY(`student_id`)
REFERENCES student(`student_id`)
)
ENGINE = InnoDB;

最佳答案

您可以通过官方documentation了解您的错误原因:

The NO_ZERO_DATE mode affects whether the server permits '0000-00-00' as a valid date. Its effect also depends on whether strict SQL mode is enabled.

  • If this mode is not enabled, '0000-00-00' is permitted and inserts produce no warning.
  • If this mode is enabled, '0000-00-00' is permitted and inserts produce a warning.
  • If this mode and strict mode are enabled, '0000-00-00' is not permitted and inserts produce an error, unless IGNORE is given as well. For INSERT IGNORE and UPDATE IGNORE, '0000-00-00' is permitted and inserts produce a warning.

正如它所说,您可以使用 IGNORE 选项插入 0000-00-00 日期。这是为了插入。

就您而言,您所要做的就是将 NOT NULL 约束添加到您的 TIMESTAMP 字段,以避免默认值 0000- 00-00如下:

StartDate TIMESTAMP NOT NULL,
EndDate TIMESTAMP NOT NULL,
course_Update TIMESTAMP NOT NULL,

编辑1:

根据您的评论,如果您使用的是 Linux,则需要编辑 my.cnf 文件;如果您使用的是 Windows,则需要编辑 my.ini 文件以启用严格 SQL 模式。您可以在SQL-mode上找到如何做到这一点。

关于mysql - 错误 1067 EndDate 默认值无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27076899/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com