MySQL8如何设置自动创建时间和自动更新时间
1、在数据库表中的数据,要求记录每一条新增数据的创建时间,时间格式要求明确至:年月日:时分秒。
2、在数据库表中的数据,要求记录每一条更新数据的更新时间,时间格式要求明确至:年月日:时分秒。
功能实现:1、为每张业务表添加create_time 和update_time 字段,且将字段类型设置为:timestamp
2、为每张业务表的create_time 和update_time 字段,设置默认值:CURRENT_TIMESTAMP
DDL 脚本语法:1、新增字段create_time语法ALTER TABLE 表名
ADD COLUMN 字段名 timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'
;
实例:为User表 新增create_time设置默认时间 CURRENT_TIMESTAMP
ALTER TABLE UserADD COLUMN create_time datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '
创建时间'
;
2、修改字段create_time语法ALTER TABLE 表名
MODIFY COLUMN 字段名 timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '
创建时间'
;
实例:修改User 表中的create_time设置默认时间 CURRENT_TIMESTAMP
ALTER TABLE UserMODIFY COLUMN create_time timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '
创建时间'
;
3、新增字段update_time 语法ALTER TABLE 表名
ADD COLUMN 字段名 timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '
更新时间'
;
实例:为User表 新增update_time 设置默认时间 CURRENT_TIMESTAMP
ALTER TABLE UserADD COLUMN Update_time timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '
更新时间'
;
4、修改字段update_time 语法ALTER TABLE 表名
MODIFY COLUMN 字段名 timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '
更新时间'
;
实例:修改User 表中的update_time设置默认时间 CURRENT_TIMESTAMP
ALTER TABLE UserMODIFY COLUMN update_time timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '
更新时间'
;
自动创建时间和自动更新时间是非常有用和方便的功能,可以帮助我们更好地管理数据库中的数据。在MySQL 8中,我们可以很容易地设置这些功能。接下来,我们将介绍如何设置自动创建时间和自动更新时间。
设置自动创建时间
自动创建时间是指当我们在数据库中插入一条新记录时,系统会自动生成一个时间戳,记录该数据的创建时间。在MySQL 8中,我们可以使用TIMESTAMP类型来实现自动创建时间的功能。具体步骤如下:
1. 在表的创建语句中,为需要自动生成创建时间的字段添加一个默认值为CURRENT_TIMESTAMP的约束。如下所示:
CREATE TABLE test (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
2. 当我们插入新记录时,不需要手动为created_at字段赋值,系统会自动生成时间戳。如下所示:
INSERT INTO test (name) VALUES ('John');
3. 在查询数据时,我们可以看到创建时间已经被自动记录下来了。如下所示:
SELECT * FROM test;
+----+------+---------------------+
| id | name | created_at |
+----+------+---------------------+
| 1 | John | 2022-01-01 00:00:01 |
+----+------+---------------------+
设置自动更新时间
自动更新时间是指当我们在数据库中修改一条记录时,系统会自动更新该数据的更新时间戳。在MySQL 8中,我们可以使用ON UPDATE CURRENT_TIMESTAMP约束来实现自动更新时间的功能。具体步骤如下:
1. 在表的创建语句中,为需要自动生成更新时间的字段添加一个默认值为CURRENT_TIMESTAMP、ON UPDATE CURRENT_TIMESTAMP的约束。如下所示:
CREATE TABLE test (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
2. 当我们更新记录时,不需要手动为updated_at字段赋值,系统会自动更新时间戳。如下所示:
UPDATE test SET name = 'Marry' WHERE id = 1;
3. 在查询数据时,我们可以看到更新时间已经被自动记录下来了。如下所示:
SELECT * FROM test;
+----+-------+---------------------+---------------------+
| id | name | created_at | updated_at |
+----+-------+---------------------+---------------------+
| 1 | Marry | 2022-01-01 00:00:01 | 2022-01-02 00:00:01 |
+----+-------+---------------------+---------------------+
总结
通过上述步骤,我们可以在MySQL 8中轻松实现自动创建时间和自动更新时间的功能。使用这些功能,我们可以更好地管理数据库中的数据,提高数据管理的效率和质量,是非常实用和方便的功能。