问题描述(mysql版本:5.7.36):
今天在使用Navicat可视化工具运行sql文件,发生如下错误:
在图中,sql是没有错误的,但是运行报错Invalid default value for 'end_time'。
解决办法:
修改全局变量explicit_defaults_for_timestamp
mysql> set global explicit_defaults_for_timestamp = ON;
注意:设置完之后需要重启navicat。
再次运行的效果:
原因分析:
mysql从5.7开始,默认是严格模式,严格遵从SQL92规范。
如果导入的sql中,只有一个字段是TIMESTAMP类型,就没事儿
如果导入的sql中,有多个字段的信息是TIMESTAMP,就需要设置为OFF。