下面是详细讲解 MySQL8 设置自动创建时间和自动更新时间的实现方法的攻略:
1. 添加创建时间和更新时间字段
首先,在需要添加自动时间戳的表中,添加两个字段:created_at
和 updated_at
,分别记录记录创建时间和更新时间。可以使用以下 SQL 语句进行添加:
ALTER TABLE table_name ADD created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
ALTER TABLE table_name ADD updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
其中,table_name
表示需要添加自动时间戳的表的名称。
2. 插入一条数据并查看结果
接下来,向该表插入一条数据,代码如下:
INSERT INTO table_name (column1, column2) VALUES ('value1', 'value2');
此时,可以通过执行以下 SQL 语句来查看添加时间和更新时间的结果:
SELECT created_at, updated_at FROM table_name WHERE column1 = 'value1';
查询结果会显示如下信息:
created_at | updated_at
---------------------|---------------------
2022-01-01 00:00:00 | 2022-01-01 00:00:00
可以看到,插入数据时 created_at
字段被自动赋值为当前时间,而 updated_at
字段与之相同。
3. 更新一条数据并查看结果
接下来,尝试更新一条数据,代码如下:
UPDATE table_name SET column2 = 'new_value2' WHERE column1 = 'value1';
此时,再次执行查询语句,查看更新时间的结果:
SELECT created_at, updated_at FROM table_name WHERE column1 = 'value1';
查询结果会显示如下信息:
created_at | updated_at
---------------------|---------------------
2022-01-01 00:00:00 | 2022-01-02 00:00:00
可以看到,更新数据后,updated_at
字段被自动更新为当前时间,而 created_at
字段不变。
4. 示例说明
下面,展示一个更完整的示例,假设要创建一个用户表,包含用户名、密码、邮箱等字段。首先,添加创建时间和更新时间字段:
ALTER TABLE users ADD created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
ALTER TABLE users ADD updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
然后,插入一条数据:
INSERT INTO users (username, password, email) VALUES ('user1', 'pass1', 'user1@example.com');
查看插入结果:
SELECT * FROM users WHERE username = 'user1';
查询结果会显示如下信息:
id | username | password | email | created_at | updated_at
----|------------|------------|-------------------------|-----------------------------|--------------------------
1 | user1 | pass1 | user1@example.com | 2022-01-01 00:00:00 | 2022-01-01 00:00:00
接下来,更新该用户的密码:
UPDATE users SET password = 'newpass1' WHERE username = 'user1';
再次查看更新时间:
SELECT * FROM users WHERE username = 'user1';
查询结果会显示如下信息:
id | username | password | email | created_at | updated_at
----|------------|------------|-------------------------|-----------------------------|--------------------------
1 | user1 | newpass1 | user1@example.com | 2022-01-01 00:00:00 | 2022-01-02 00:00:00
可以发现,更新密码后,updated_at
字段被自动更新为当前时间。
以上就是 MySQL 8 设置自动创建时间和自动更新时间的实现方法的完整攻略,希望能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL8设置自动创建时间和自动更新时间的实现方法 - Python技术站