2017-12-01 14 views
0

テーブルに行を追加すると、自動的に "created_at"と "updated_at"の現在時刻が取得されます。だから私は更新クエリを使用するたびに私は手動で "created_at"と "updated_at"の間の時間差をSELECT TIME_TO_SEC(timediff(updated_at, created_at)) from abc コマンドを使用して計算する "updated_at"の現在の時間を取得しています。MysqlはTimediffを更新します。

今、私はそれが自動的秒の時間差を算出することができ、テーブルを作成し、私は以下のようなものを試してみた何かtimediff ON UPDATE TIME_TO_SEC(timediff(updated_at, created_at))

を追加するなどの「timediff」と呼ばれる別の列にそれを書き込むことが可能ですが、疑問に思いますそれは動作しません。

CREATE TABLE abc (
     id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
     pieces INT(6), 
     created_at TIMESTAMP NOT NULL DEFAULT NOW(), 
     updated_at TIMESTAMP NOT NULL DEFAULT NOW() ON UPDATE NOW(), 
     timediff ON UPDATE TIME_TO_SEC(timediff(updated_at, created_at)) -- that's the issue 
     ) 

トリガーや複雑なものを混乱させたくないので、私はそれを整理する最も効率的で簡単な方法を探しています。 MySQLのマニュアルから

おかげ

答えて

0

...

トリガは、テーブルに関連付けられているという名前のデータベース・オブジェクトです テーブルに対して特定イベントが発生したときにそれがアクティブになります。 トリガーには、 テーブルに挿入する値のチェックを実行するか、更新に関連する値の計算を実行するものがあります。

したがって、トリガーは、ユーザーが記述した状況を正確に示すためのものです。 Full info

+0

トリガーの定義は必要ありません。 – LoremIpsum