MySQL – TIMESTAMP(3)的默认值
在MySQL中,TIMESTAMP是用于存储日期和时间的数据类型之一。TIMESTAMP类型可以表示从1970年1月1日开始的秒数以及小数部分。这个类型的默认值是当前的日期和时间。
在MySQL 5.6之前,TIMESTAMP类型的默认精度是0,表示秒级别的时间。从MySQL 5.6开始,TIMESTAMP类型支持精度的设置。TIMESTAMP(3)表示这个类型有3位小数,也就是可以表示毫秒级别的时间。因此,TIMESTAMP(3)类型的默认值是当前日期和时间以及毫秒级别的时间。
阅读更多:MySQL 教程
示例
我们可以通过下面的示例来说明TIMESTAMP(3)类型的默认值:
CREATE TABLE test (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
created_at TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
modified_at TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)
);
INSERT INTO test (created_at, modified_at) VALUES (DEFAULT, DEFAULT);
SELECT * FROM test;
在这个示例中,我们创建了一个名为test的表,其中包含了两个TIMESTAMP(3)类型的列created_at和modified_at。这两个列都是NOT NULL约束,并且设置了默认值为CURRENT_TIMESTAMP(3),也就是当前时间和毫秒级别的时间。其中,modified_at列还设置了ON UPDATE CURRENT_TIMESTAMP(3)约束,表示当这个列被更新时,会更新为当前时间和毫秒级别的时间。
之后,我们向test表中插入了一条记录,使用了DEFAULT关键字来插入默认值。最后,我们使用SELECT语句来查询test表中的所有记录,结果如下所示:
+----+----------------------------+----------------------------+
| id | created_at | modified_at |
+----+----------------------------+----------------------------+
| 1 | 2021-05-25 15:46:42.523 | 2021-05-25 15:46:42.523 |
+----+----------------------------+----------------------------+
我们可以看到,created_at和modified_at列的值都是当前的日期和时间以及毫秒级别的时间。
总结
在MySQL中,TIMESTAMP(3)类型的默认值是当前的日期和时间以及毫秒级别的时间。我们可以在创建表时为TIMESTAMP(3)类型的列设置默认值为CURRENT_TIMESTAMP(3),来确保这个列在插入记录时可以自动填充默认值。另外,我们也可以在表定义中为TIMESTAMP(3)类型的列设置ON UPDATE CURRENT_TIMESTAMP(3)约束,来确保该列在更新记录时可以自动更新为当前时间和毫秒级别的时间。
极客教程