如何在表中添加“创建于”列来设置 MySQL 中的时间戳?

1. 什么是时间戳?

在数据库中,时间戳是指记录某个时间点的方式。在 MySQL 中,可以使用 DATETIME 或 TIMESTAMP 类型来存储时间戳。

2. 设置 MySQL 中的时间戳

2.1 使用 DATETIME 数据类型

在使用 DATETIME 类型的列中,可以将当前时间戳作为默认值来存储创建时间。我们可以通过以下 SQL 语句来创建带有创建时间的表:

CREATE TABLE mytable (

id INT UNSIGNED NOT NULL AUTO_INCREMENT,

column1 VARCHAR(30) NOT NULL,

created_at DATETIME DEFAULT CURRENT_TIMESTAMP,

PRIMARY KEY (id)

);

上面的 SQL 语句中,created_at 列包含当前时间戳的默认值 CURRENT_TIMESTAMP。

如果我们向 mytable 表中插入一行记录,则会自动将当前时间戳作为 created_at 列的值:

INSERT INTO mytable (column1) VALUES ('some value');

2.2 使用 TIMESTAMP 数据类型

与 DATETIME 数据类型不同,TIMESTAMP 类型可以自动更新并用于存储创建和更新时间。我们可以使用以下 SQL 语句创建带有创建和更新时间的表:

CREATE TABLE mytable (

id INT UNSIGNED NOT NULL AUTO_INCREMENT,

column1 VARCHAR(30) NOT NULL,

created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,

updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

PRIMARY KEY (id)

);

在上面的 SQL 语句中,created_at 列包含当前时间戳的默认值 CURRENT_TIMESTAMP,而 updated_at 列在 UPDATE 操作时自动将它的值更新为当前时间戳。

如果我们向 mytable 表中插入一行记录,则会自动将当前时间戳作为 created_at 和 updated_at 列的值:

INSERT INTO mytable (column1) VALUES ('some value');

如果我们更新 mytable 表中的某一条记录,则会自动将当前时间戳作为 updated_at 列的值:

UPDATE mytable SET column1 = 'new value' WHERE id = 1;

3. 总结

使用 DATETIME 或 TIMESTAMP 类型,我们可以在 MySQL 中轻松地设置并存储时间戳。除了创建时间戳之外,我们还可以使用 TIMESTAMP 类型来存储更新时间戳,以及使用 ON UPDATE CURRENT_TIMESTAMP 属性来自动更新更新时间戳。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

数据库标签