【踩坑】Mysql报错Invalid default value
前言
Mysql在创建表时,指定某个timestamp类型的默认值为0000-00-00 00:00:00
时报错:ERROR 1067 (42000): Invalid default value for 'order_time'
原因
- Mysql5.6以后
sql_mode
中多了一条NO_ZERO_DATE
(不允许时间值全部为0)
解决问题
- 重新配置
sql_mode
让它支持全部为0的时间值
1 | mysql> set sql_mode="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"; |
报错
- 再次报错:
ERROR 1231 (42000): Variable 'sql_mode' can't be set to the value of 'NO_AUTO_CREATE_USER'
原因
- Mysql8.0以上已经取消了
NO_AUTO_CREATE_USER
这个关键字
解决问题
- 重新配置
sql_mode
并删掉NO_AUTO_CREATE_USER
关键字
1 | mysql> set sql_mode="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"; |
完成
参考文献
CSDN——linmengmeng_1314
简书——神经电泳实现师
CSDN——Dreamboy_w
简书——丶Rainbow丨