Mysql Date 类型字段,设置 DEFAULT '0000-00-00' 报错
Invalid default value for ‘create_time’
原因:SQL_MODE 没设置好。
解决:
(1)查询当前数据库的 SQL_MODE
SELECT @@sql_mode;
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
可以看到 NO_ZERO_IN_DATE,NO_ZERO_DATE 是 DATE 不能全部为0的原因,所以把模式中的 NO_ZERO_IN_DATE,NO_ZERO_DATE 去掉就可以了。
(2)重置 SQL_MODE
SET GLOBAL
sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_US
ER,NO_ENGINE_SUBSTITUTION';
命令说明:
SET [SESSION|GLOBAL] sql_mode=’modes’
SESSION 只在当前会话中生效,GLOBAL为全局生效。