2016-11-10 84 views
-4

我有命令的表,我想更改爲「已過期」命令的狀態,如果這種狀態並沒有在30分鐘如何在創建表格後更新表格中的列?

更新變成別的東西: 我希望這種情況發生,每30分鐘,我不能做任何事情。數據庫會自行更新,如果在30分鐘內沒有處理此命令,則將任何命令的狀態更改爲「已過期」

+3

'UPDATE key SET value =「expired」WHERE condition',就像我可以給你的儘可能多的你給我們的。投票結果太寬泛,完全缺乏背景。 –

+0

我刪除了不兼容的數據庫標籤。請添加一個標籤,指定您真正使用的數據庫。 –

+0

你正在使用哪些DBMS?語法不會相同。沒有一些表格定義和清晰度,目前不能回答。 –

回答

1

不要這樣做!而是使用視圖或計算列。

因此,保持最新的更新日期。這應該很容易,因爲無論如何你都在修改表格。

然後,可以計算過期爲:

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語法)。而且,有些數據庫支持將定義直接放在表中的計算列。這非常方便,因爲您不必更改數據;它只是在您查詢數據時起作用。

+0

我其實需要更改數據庫;因爲它會在一段時間之後被刪除,就像臨時表一樣,可以找到restaus命令 – brahimm

+0

@brahimm。 。 。你的評論沒有意義。 –

+0

好!我需要sql中的更新數據庫的條件。 – brahimm

相關問題