如何在更新记录时阻止时间戳字段更新其值

时间:2012-08-31 19:23:01

标签: mysql timestamp

让我说我以这种方式输入记录

"insert into table (value,time) VALUES ('4',NOW())"

这就是我更新值的方式

"update table set value = '5' WHERE id = '1'"

问题是,对于最后一个查询,时间值再次使用current_timestamp更新,所以时间错误。

我该怎样防止这种情况? (我希望时间的值在插入时保持current_timestamp,而不是更新)

PD:我尝试使用sqlBuddy从行中删除值CURRENT_TIMESTAMP,但它再次被应用,就像没有保存更改一样..

4 个答案:

答案 0 :(得分:8)

您只需在更新查询中添加字段的当前值,如下所示:

update table set value = '5', timestamp_value = timestamp_value WHERE id = '1'

答案 1 :(得分:0)

只需将该字段设为DateTime字段,默认值为CURRENT_TIMESTAMP。因此,它将在创建新记录时设置,但仅在您需要时更新。

答案 2 :(得分:0)

您应将默认值设置为CURRENT_TIMESTAMP

CREATE TABLE t1 (
  ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

这可以缓解你的痛苦。

答案 3 :(得分:-1)

TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP在更新CURRENT_TIMESTAMP属性时删除。

适用于PhpmyAdmin。