1. ホーム
  2. mysql

[解決済み] mysql が複数のカラムを同じ now() で更新する。

2023-03-11 09:27:25

質問

私は2つのdatetimeカラムを更新する必要があり、mysqlバージョン4.1.20を使用して、それらが正確に同じであることが必要です。私はこのクエリを使用しています。

mysql> update table set last_update=now(), last_monitor=now() where id=1;

の2つの呼び出しがあるため、カラムが異なる時刻で更新される可能性がありますが、安全です。 now() ?

異なる値で更新することはできないと思います(内部的にはmysqlが now() を呼び出すと思うのですが、私は専門家ではないので、どう思われますか?

更新しました。 2つ目の質問が抽出されました ここで .

どのように解決するのですか?

解決策が見つかりました。

mysql> UPDATE table SET last_update=now(), last_monitor=last_update WHERE id=1;

私が見つけたのは これ を MySQL Docs で見つけ、いくつかのテストの後、動作しました。

の場合、次のステートメントは、col2 に元の col1 の値ではなく、現在の (更新された) col1 の値を設定します。その結果、col1 と col2 が同じ値を持つということです。この動作は標準SQLとは異なります。

UPDATE t1 SET col1 = col1 + 1, col2 = col1;