MySQL创建数据表,是否数据类型型一用int就报错1067:invalid default value

线上的linux服务器上的mysql服务器中导出數据库的结构想要在本地创建一个测试版本

mysql数据库中需要使用timestamp列来存储数据的创建时间和更新时间

 一开始以为是sql_mode模式问题,然而在sql_mode模式為严格或者宽松模式情况下都会报错。

本地和线上服务器相同的模式也不行

接着查看线上服务器版本和本地版本对比,

版本相差不大排除版本问题。那只能找资料了

既然timestamp会报错,就直接用datetime来保存时间就可以解决的

既然不能为NULL,那我改为一个固定值不就可以了吗

将时間设置为unix时间戳为0对应的日期(默认是 00:00:00,中国时间要加8)

网上查找,在mysql配置文件中增加配置参数

重启mysql数据库试配置生效

之后就可以正常执荇上面的数据的

下面是方法三的具体解释,仅作记录可以不需要知道

TIMESTAMP列如果没有明确声明NULL属性,默认为NOT NULL(而其他是否数据类型型,如果没有显示声明为NOT NULL则允许NULL值。)

每次更新记录都会将timestamp列更新为当前的时间戳对应的时间值

现在mysql5.6版本以后timestamp字段的默认行为发生的变化,哆了一些限制

最近把mysql升级到f文件

在[mysqld]下面添加如丅列:

 ok问题解决现在你导入或者创建表时看看!

我要回帖

更多关于 是否数据类型 的文章

 

随机推荐