3

我有一个包含 3 列的数据库:

ID / 价格 / last_updated

“last_updated”列有..

  • 作为类型:时间戳
  • 作为标准:CURRENT_TIMESTAMP
  • 作为属性:更新时的当前时间戳
  • 作为额外:更新时的当前时间戳

当我运行 mysql_query(UPDATE...) 来更改价格时,有些价格不会改变。但是,在这些情况下,last_updated 值与之前保持不变(在这种情况下为:0000-00-00 00:00:00,因为记录没有更改)。

所以我猜,如果新值与当前值不同,UPDATE 只会“更新”。

即使在执行 mysql_query(UPDATE...) 后值没有更改,如何将当前时间戳放入表中?

4

2 回答 2

4

在您的查询中,始终last_updated使用更新字段NOW()。像这样:

UPDATE table SET price = ?, last_updated = NOW() WHERE id = ??
于 2012-12-04T19:24:29.777 回答
0

试试这个 :

ALTER TABLE myTable 
MODIFY last_updated TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP

对于一次性修复,在现有表上:

update myTable set last_updated=now() where last_updated='0000-00-00 00:00:00'
于 2012-12-04T19:18:33.550 回答