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
是一个方便的方式来管理更新时间戳字段,无需手动设置时间戳的值,系统会自动处理。