mysql 默认当前时间的建表sql datetime
在MySQL数据库中,可以使用datetime
数据类型来存储日期和时间信息。当创建表时,我们常常需要设置默认值来确保数据的完整性和准确性。本文将详细介绍如何在MySQL中使用datetime
数据类型,并设置默认值为当前时间。
使用datetime
数据类型
datetime
是一种用于存储日期和时间的数据类型,它可以存储从1000-01-01 00:00:00到9999-12-31 23:59:59之间的时间。它的语法如下:
datetime
当我们在创建表时需要一个字段存储日期和时间信息时,可以选择datetime
类型。接下来,我们将通过一个示例来说明如何在MySQL中创建一个包含datetime
类型字段的表。
首先,我们创建一个名为users
的表,其中包含id
和created_at
两个字段。id
字段用于存储用户的唯一标识符,created_at
字段用于存储用户创建的时间。
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
created_at DATETIME
);
在上面的示例中,我们使用CREATE TABLE
语句创建了一个名为users
的表。id
字段使用INT
类型,并设置为自增的主键。created_at
字段使用DATETIME
类型,表示用户的创建时间。现在,我们已经成功创建了一个包含datetime
类型字段的表。
设置默认值为当前时间
当我们创建表时,可以使用DEFAULT
关键字来设置默认值。在MySQL中,可以使用函数CURRENT_TIMESTAMP
来获取当前时间戳。因此,我们可以使用CURRENT_TIMESTAMP
作为默认值,将当前时间设置为默认值。接下来,我们将通过一个示例来说明如何设置默认值为当前时间。
假设我们要创建一个名为users
的表,除了id
和created_at
字段外,还包含一个updated_at
字段,用于存储最后更新的时间。我们可以使用CURRENT_TIMESTAMP
函数作为默认值,将当前时间设置为默认值。
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
在上面的示例中,我们通过在created_at
字段上使用DEFAULT CURRENT_TIMESTAMP
来设置默认值为当前时间。此时,如果我们插入一条新的记录,并不指定created_at
字段的值,该字段将自动设置为插入数据时的当前时间。
除此之外,我们还在updated_at
字段上使用了DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
来设置默认值为当前时间,并且在更新数据时自动更新为当前时间。这意味着,每次更新数据时,updated_at
字段的值都会自动更新为当前时间。
示例代码运行结果
下面是一个使用DEFAULT CURRENT_TIMESTAMP
和DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
的示例表,我们将在其中插入几条记录,以验证默认值的设置和更新功能。
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
INSERT INTO users (id) VALUES (1);
INSERT INTO users (id) VALUES (2);
接下来,我们将查询users
表中的数据,查看created_at
和updated_at
字段的值。
SELECT * FROM users;
查询结果如下:
+----+---------------------+---------------------+
| id | created_at | updated_at |
+----+---------------------+---------------------+
| 1 | 2022-07-31 10:00:00 | 2022-07-31 10:00:00 |
| 2 | 2022-07-31 10:01:00 | 2022-07-31 10:01:00 |
+----+---------------------+---------------------+
可以看到,created_at
和updated_at
字段的值都被正确地设置为当前时间。通过插入数据和更新数据,我们可以验证默认值的设置和更新功能。
总结
在MySQL中,我们可以使用datetime
数据类型来存储日期和时间信息。通过使用DEFAULT CURRENT_TIMESTAMP
,我们可以将当前时间设置为字段的默认值。使用DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
,我们可以在更新数据时自动将当前时间设置为字段的值。这样能够更方便地记录数据的创建和更新时间。