好的,我有people
表并尝试使用下一个命令运行sql-script:
ALTER TABLE `people`
ADD COLUMN `name_spelling`
VARCHAR(255) NULL DEFAULT NULL
AFTER `last_name`;
然后我会收到错误:
[22001][1292] Data truncation: Incorrect date value:
'0000-00-00' for column 'birth_date' at row 35
此行birth_date
为NULL
,但如果我尝试在此列和行设置2016-05-05
之类的日期而不是设置NULL
- 所有工作都是在此行更正,但在下一个null
日期会收到错误。
此外,并非所有null
日期值都会返回错误。
答案 0 :(得分:1)
也许你的MySQL有一些选项,比如NO_ZERO_DATE SQL模式(我认为它不是唯一阻止发布日期的mysql配置)。这会阻止您使用0000-00-00作为值。在我之前发生了一个已经创建的表违反了这个条件。在更改值或禁用阻止您设置0个日期的内容之前,它将无法编辑。
答案 1 :(得分:0)
我曾经遇到过这个问题,而我的解决方法是编辑mysql.cnf文件 替换:sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
与此: sql_mode ='STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
注意,我删除了该选项中的No_ZERO。