抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

解决MySQL 8创建表使用timestamp类型插入数据不自动添加时间戳的问题。

创建表的时候使用以下语句:

1
2
3
4
5
6
7
8
CREATE TABLE student(
id int,
stu_name varchar(32),
age int,
score double(4,1),
birthday date,
insert_time timestamp
);

创建成功之后我们尝试插入数据:

1
INSERT INTO student(id,stu_name,age) VALUES(1,"宋祖儿",23);

接下来我们查询以下student表中的内容:

1
SELECT * from student;

我们惊奇的发现,结果竟然是这样:

20210706172015

为什么我们的insert_time设置的是timestamp类型,但是却没有自动添加时间戳呢?

原来是因为timestamp的默认中没有CURRENT_TIMESTAMP选项。

那么我们如何解决呢?

那么我想到的方法就是在创建表的时候直接指定不就好了吗,说干就干。

接下来我们先删除表:

1
DROP TABLE student;

紧接着,我们重新来创建表:

1
2
3
4
5
6
7
8
CREATE TABLE student(
id int,
stu_name varchar(32),
age int,
score double(4,1),
birthday date,
insert_time timestamp(0) DEFAULT CURRENT_TIMESTAMP(0);
);

我们先检查一下表:

1
DESC student;

可以看到:

20210706172603

这次应该就没问题了,那么我们来插入一条数据看看:

20210706172713

ok,完美解决!

评论