考虑一个非常简单的表格:
create table test (
data varchar(2048),
modified timestamp default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP
) engine=InnoDB;
我们插入一些行:
insert into test (data) values (
('some data'),
('some other data'),
('etc...')
);
现在通常,我们希望这些行上的时间戳自动更新。的所有者some data
可能会触摸他们的行:
update test set data='some different data' where data='some other data';
modified
印章将按预期更新。但是,假设管理员意识到其中一些行是错误的——更新数据的脚本在过去一小时(或其他任何时间)一直在插入“ TEST ”。因此,我们需要在不更新时间戳的情况下更改数据——因为时间戳并非旨在表示管理清理。
可以修改此更新以单独保留时间戳吗?
update test set data = replace(data, '__TEST__', '');