300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > MySQL自动更新当前时间戳

MySQL自动更新当前时间戳

时间:2021-02-14 17:24:11

相关推荐

MySQL自动更新当前时间戳

1. 问题

碰到一个奇怪的问题,一个业务表当更新了其中几行后,这几行对应的列created_at(DATETIME)自动更新为当前时间。

2. 排查

第一感觉想到触发器,排查表并未有触发器。打开表设计器,发现其中"更新"列对应created_at打了勾。

3. 分析

3.1 功能

可以自动更新列为当前日期时间,即当前时间戳。

3.2 语法

ON UPDATE CURRENT_TIMESTAMP,可以用于以下类型

DATETIMETIMESTAMP

备注:确认不能用于DATE类型。

用于INT、VARCHAR报出类似以下的错误

错误代码: 1294

Invalid ON UPDATE clause for ‘status’ column

3.2.1 CREATE

CREATE TABLE `test_table` (`id` INT(11) NOT NULL AUTO_INCREMENT,`remark` VARCHAR(255) DEFAULT NULL COMMENT '备注' ,`created_at` DATETIME NULL COMMENT '创建时间' ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`)) ENGINE=INNODB COMMENT='test_table;';

3.2.2 UPDATE

3.2.2.1 删除

ALTER TABLE test_table CHANGE created_at created_at DATETIME NULL COMMENT '创建时间';

3.2.2.2 增加

ALTER TABLE test_table CHANGE created_at created_at DATETIME NULL COMMENT '创建时间' ON UPDATE CURRENT_TIMESTAMP;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。