在mysql低版本时,update_time只有插入时才会自动插入当前时间,更新不会改变。
- MySQL 5.7 及以上版本对于
TIMESTAMP
类型字段有自动更新功能相关特性 - 在 MySQL 5.7以上版本 中,如果将一个
TIMESTAMP
类型的列设置为ON UPDATE CURRENT_TIMESTAMP
属性,那么在该行数据被更新时,该列会自动更新为当前时间。例如,假设有一个表test_table
,结构如下:
sql
CREATE TABLE test_table (
id INT PRIMARY KEY AUTO_INCREMENT,
data VARCHAR(255),
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
- 当执行更新语句,如
UPDATE test_table SET data = 'new data' WHERE id = 1;
时,update_time
列的值会自动更新为更新操作执行时的时间。
如果想要用低版本来实现update_time自动更新,两种常用方法。
-
一种是作为参数传入,和其他字段一样传入更新。
-
另一种就是利用数据库时间。
sql
update_time = NOW(),