2

以下のステートメントなしで更新せずにテーブルのタイムスタンプを更新するにはどうすればよいですか?

update table_name set field_name1 = 1 where field_name =1;

テーブル構造の画像を追加しました

ここに画像の説明を入力してください

4

2 に答える 2

7

を使用せずに更新することはできませんUPDATE

タイムスタンプ列については、MySQLドキュメント:TIMESTAMPの自動初期化と更新をお読みください

列が自動更新される場合、行の他の列の値が現在の値から変更されると、現在のタイムスタンプに自動的に更新されます。他のすべての列が現在の値に設定されている場合、列は変更されません。他の列が変更されたときに列が更新されないようにするには、列を現在の値に明示的に設定します。

他の列が変更されていない場合でも列を更新するには、列を本来あるべき値に明示的に設定します(たとえば、に設定しますCURRENT_TIMESTAMP

したがって、タイムスタンプ列のみを更新します。

UPDATE table_name 
SET last_delv_date = CURRENT_TIMESTAMP
WHERE ... ;
于 2012-06-20T13:28:57.940 に答える
2
UPDATE table_name 
SET columnNAME = CURRENT_TIMESTAMP
WHERE columnName = ???

編集:

または、テーブル構造を次のように変更します。

ON UPDATE CURRENT_TIMESTAMP
于 2012-06-20T13:30:56.160 に答える