私は、コマンドのテーブルを持っていると私は、この状態が30分作成時にテーブル内の列を更新するにはどうすればよいですか?
更新に何か他のものに変更しなかった場合は、「期限切れ」にコマンドのステータスを変更したい: 私は、これはすべての30を起こるしたいです分、私は何もしてはいけません。このコマンドが30分以内に処理されなかった場合、データベースは自動的に更新され、コマンドのステータスが「期限切れ」に変更されます。
私は、コマンドのテーブルを持っていると私は、この状態が30分作成時にテーブル内の列を更新するにはどうすればよいですか?
更新に何か他のものに変更しなかった場合は、「期限切れ」にコマンドのステータスを変更したい: 私は、これはすべての30を起こるしたいです分、私は何もしてはいけません。このコマンドが30分以内に処理されなかった場合、データベースは自動的に更新され、コマンドのステータスが「期限切れ」に変更されます。
Do not do!代わりに、ビューまたは計算列を使用します。
最新の更新日を保持してください。とにかくテーブルを変更しているので、これは簡単なはずです。もちろん
create view v_t as
select t.*,
(case when status_update_dt < CURRENT_DATETIME - interval '30 minute'
then 'expired'
else status
end) as new_status
from t;
、関数はデータベースに依存して、日付/時間(上記でANSI構文):
その後、あなたは期限切れのように計算することができます。また、一部のデータベースでは、テーブルに直接定義された計算カラムがサポートされています。データを変更する必要がないので、これは本当に便利です。データを照会すると機能します。
UPDATEキーSET値= "期限切れ" WHERE条件 "は、私があなたに与えた分だけあなたに与えることができます。あまりにも幅広く、完全な文脈の欠如として閉じる投票。 –
互換性のないデータベースタグを削除しました。実際に使用しているデータベースを指定するタグを追加してください。 –
どのDBMSを使用していますか?構文は同じではありません。テーブルの定義と明快さがなければ、これは現在のところ解決できません。 –