今天在向workbench中导入sql脚本的时候报了一个错,在执行建表语句时有一个时间字段属性为 DEFAULT CURRENT_TIMESTAMP,执行sql脚本时插入一条该字段值为“0000-00-00 00:00:00”的数据时报错,询问组内大哥后发现是sql_model的问题,原来在WorkBench中sql_model的默认值为:
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
可通过以下sql语句查询sql_model的值:
show variables like '%sql_mode%';
只需执行以下sql将sql_model中的值去掉 NO_ZERO_IN_DATE和NO_ZERO_DATE即可:
set @@sql_mode ='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
至此问题解决,记录一下。