mysql错误处理:Error 1067 (42000): Invalid default value for ‘created_at‘

在写如下操作的时候遇到这个问题

create table test_self_creates 
(id bigint unsigned auto_increment primary key,name varchar(20),
created_at datetime(3) default CURRENT_TIMESTAMP,
updated_at datetime(3) default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP);

其实问题很简单,时间戳精度对不上,datetime(3)表示这datetime保留小数点后三位精度,current_timestamp也保留三位精度就行。

解决如下:

create table test_self_creates 
(id bigint unsigned auto_increment primary key,name varchar(20),
created_at datetime(3) default CURRENT_TIMESTAMP(3),
updated_at datetime(3) default CURRENT_TIMESTAMP(3) on update CURRENT_TIMESTAMP(3));

current_timestamp可以作为一个值,也可以作为一个函数传入精度参数,至少我这里的改动是有用的。

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