MySQL创建表时候因多个字段使用timestamp类型而出现Invalid default value for的问题的分析与解决
一个表里面创建多个timestamp类型的字段时候。
CREATE TABLE table1
(
user_id int(10),
create_time timestamp,
modify_time timestamp
);
会提示错误如下。
Invalid default value for 'modify_time'
这里不会提示第一个timestamp时间戳类型,只会提示后面的timestamp类型字段的类型出现了错误,这是因为MySQL创建timestamp类型时候是默认非空的,要个赋一个当前的日期时间,即Default CURRENT_TIMESTAMP。但是由于 一个表中只能有一个字段设置为CURRENT_TIMESTAMP ,因此一个表中的多个字段都使用会默认设置CURRENT_TIMESTAMP为默认值的timestamp类型是不行的。这个可以在配置文件里面更改。
但是我使用的是将timestamp默认值都设为空的方法,来完成表的创建,在不影响业务的前提下,这应该是一种偷懒的方法吧。
CREATE TABLE table1
(
user_id int(10),
create_time timestamp NULL,
last_modify_time timestamp NULL,
);