【问题标题】:How to leave an auto-updating timestamp alone when performing an UPDATE执行 UPDATE 时如何单独保留自动更新时间戳
【发布时间】:2013-11-19 08:07:39
【问题描述】:

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

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

【问题讨论】:

    标签: mysql timestamp sql-update


    【解决方案1】:

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

    update test set data = replace(data, '__TEST__', ''), modified = modified;
    

    【讨论】:

      猜你喜欢
      • 2013-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多