WordPress MySQL #1067 – Invalid default value for ‘post_date’

datetime 的预设值设定为 0000-00-00 00:00:00 在旧版本没问题,但在MySQL5.7后会出现 错误,主要原因从 MySQL 5.7 开始,SQL 模式预设为 NO_ZERO_DATE ,需禁用此限制。本文提供两种解法:

Invalid default value for 'xxxx'

方法一、

先将栏位预设值设定为NULL:

ALTER TABLE mytable MODIFY COLUMN field DATETIME NULL;

再更新预设值

ALTER TABLE `mytable` CHANGE `field` `field` DATETIME NULL DEFAULT '0000-00-00 00:00:00'; 

方法二、

先执行关闭 NO_ZERO_DATE 模式

SET global sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

就可以顺利执行

ALTER TABLE `mytable` CHANGE `field` `field` DATETIME NULL DEFAULT '0000-00-00 00:00:00'; 

https://stackoverflow.com/a/37696251/6784662
https://stackoverflow.com/a/32829623

发布留言

发布留言必须填写的电子邮件地址不会公开。 必填栏位标示为 *

这个网站采用 Akismet 服务减少垃圾留言。进一步了解 Akismet 如何处理网站访客的留言资料