0

考虑一个非常简单的表格:

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__', '');
4

1 回答 1

0

将时间戳显式设置为自身:

update test set data = replace(data, '__TEST__', ''), modified = modified;
于 2013-11-07T15:37:37.993 回答