考虑一个非常简单的表:
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__', '');
答案 0 :(得分:0)
明确将时间戳设置为自身:
update test set data = replace(data, '__TEST__', ''), modified = modified;