首页 > 解决方案 > mysql:更新某些记录时如何忽略“更新时”?

问题描述

定义表时,该字段具有update_at timestamp ON UPDATE CURRENT_TIMESTAMP 属性。但现在我想更新一些列而不是修改 update_at。如何忽略影响on update

标签: mysql

解决方案


请注意针对您的特定用例正确地进行测试,但我只是用自己的方式进行了一些测试,以下内容适用于您所描述的内容。

ALTER TABLE `test`
    ALTER `timestamp` DROP DEFAULT;
ALTER TABLE `test`
    CHANGE COLUMN `timestamp` `timestamp` TIMESTAMP NULL AFTER `value`;

然后进行更新...

要改回使用:

ALTER TABLE `test`
    CHANGE COLUMN `timestamp` `timestamp` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP AFTER `value`;

这保留了较早的时间戳,而不会更改或丢失任何时间戳。


推荐阅读