1

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

"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

4 回答 4

10

您可以像这样在更新查询中简单地添加字段的当前值:

update table set value = '5', timestamp_value = timestamp_value WHERE id = '1'
于 2012-08-31T19:32:52.867 回答
0

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

于 2012-08-31T19:25:43.390 回答
0

您应该将默认值设置为CURRENT_TIMESTAMP

CREATE TABLE t1 (
  ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

这应该可以减轻你的痛苦。

于 2012-08-31T19:25:57.497 回答
-1

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

它适用于 PhpmyAdmin。

于 2018-06-10T05:18:04.857 回答