3

私は3つの列を持つデータベースを持っています:

ID / 価格 / last_updated

列「last_updated」には..

  • タイプとして: タイムスタンプ
  • 標準: CURRENT_TIMESTAMP
  • 属性として: CURRENT TIMESTAMP ON UPDATE
  • エクストラとして:更新時の現在のタイムスタンプ

価格を変更するために 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

既存のテーブルでの 1 回限りの修正の場合:

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