2012-12-18 30 views
1

我正在寫一個網絡應用程序。在其數據庫中有一個,它保留了一些到期日期。 另一個表有兩列:namestate。我希望state列在任何到期日期到達時自動更新(更新後的值根據我的程序中的某些邏輯進行計算)。如何在系統日期和時間到期時自動更新我的數據庫表?

我該如何實現此功能?在服務器機器上運行另一個程序(獨立於我的Web應用程序)是否很常見,以檢查數據庫的到期日期和更新表,還是有其他方法?

+0

@ X.Jacobs「其」(意爲屬於「它」)沒有撇號。我已經編輯了這個問題來糾正這個錯誤,然後你把它放回去了。學習如何拼寫並在那裏留下「它的」。 – Bohemian

回答

1

儘管有些數據庫支持計劃任務,但大多數DBA使用cron來安排執行該任務的任務。

我建議你也這樣做。

(感謝噓聲爲他的評論)

+0

取決於dbms。一些有任務調度程序 - PostgreSQL,DB2。可能是其他人。 –

+0

@Catcall好的。更新了我的答案。謝謝。 – Bohemian

0
DELIMITER $$ 

CREATE EVENT 'DBNAME'.'EVENTNAME' 

ON SCHEDULE 
    EVERY 1 DAY 

ON COMPLETION PRESERVE 
ENABLE 

DO 
    BEGIN 
    /*sql statements*/ 
    UPDATE tableName SET state = 'newState' where NOW() = (SELECT * FROM tableWithDates); 
    END 

DELIMITER ; 

這是創建在MySQL事件的代碼。您可以使用Mysql事件更新表中的數據。此事件每隔1天運行一次,然後執行sql查詢。 MySql事件也在後臺運行。

相關問題