mysql的update_time

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    age INT,
    update_time TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
);

具体解释如下:

  • DEFAULT CURRENT_TIMESTAMP: 这部分表示当插入新行时,如果没有指定 update_time 字段的值,将会使用当前的时间戳作为默认值。
  • ON UPDATE CURRENT_TIMESTAMP: 这部分表示当更新该行数据时,update_time 字段会自动更新为当前的时间戳。

这样的设计可以确保在插入新数据时,update_time 字段会自动被设置为当前的时间戳,而在更新数据时,update_time 字段会自动更新为更新时的时间戳,从而保持记录的更新时间是最新的。

假设我们有一张名为 users 的表,其中包含 update_time 字段,如果我们执行以下 SQL 语句:

INSERT INTO users (name, age) VALUES ('John', 30);

这条插入数据的语句中没有指定 update_time 字段的值,因此 update_time 将会被设置为当前的时间戳。

如果之后执行以下 SQL 语句:

UPDATE users SET age = 31 WHERE name = 'John';

这条更新数据的语句会自动更新 update_time 字段为当前的时间戳。

使用 DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 是一个方便的方式来管理更新时间戳字段,无需手动设置时间戳的值,系统会自动处理

你可能感兴趣的:(mysql,数据库)