数据库 datatime类型默认值 0000-00-00 00:00:00 错误

发现问题:

在开发的时候从将数据库导出想导入另一个数据库,执行sql文件的时候报错导致表不能全部导入。

错误提示:
Incorrect datetime value: ‘0000-00-00 00:00:00’ for column ‘createTime’ at row 1
数据库 datatime类型默认值 0000-00-00 00:00:00 错误_第1张图片

看到这个问题觉得很奇怪,因为这份sql文件是刚刚才从数据库导出的并且成功导入另一个数据库,而导入这个数据库的时候却报了这个错。
我以为是数据库表对datatime的默认处理,数据库表对这个字段是设置为 NOT NULL的,在原数据库添加数据发现不设置值时会自动报存为‘0000-00-00 00:00:00’的值,而导不进去的数据库datatime没有默认值。

我比较了一下这两个数据库的版块,datatime为‘0000-00-00 00:00:00’的是5.7.15,datatime不能为‘0000-00-00 00:00:00’是5.7.16,听说Mqsql版本高的datetime值不能为‘0000-00-00 00:00:00’,难道这是5.7.16与5.7.15的区别=_=??

解决方法

这里写图片描述
给NOT NULL的datatime字段一个默认值,将sql文件中的‘0000-00-00 00:00:00’给替换掉就可以成功执行。

注意:在创建数据库表是如果datatime为NOT NULL,要给这个字段一个初始值,尽量避免出现时间为‘0000-00-00 00:00:00’这个值,有些数据库是没有这个时间的。

你可能感兴趣的:(数据库)