我正在寫一個網絡應用程序。在其數據庫中有一個表,它保留了一些到期日期。 另一個表有兩列:name
和state
。我希望state
列在任何到期日期到達時自動更新(更新後的值根據我的程序中的某些邏輯進行計算)。如何在系統日期和時間到期時自動更新我的數據庫表?
我該如何實現此功能?在服務器機器上運行另一個程序(獨立於我的Web應用程序)是否很常見,以檢查數據庫的到期日期和更新表,還是有其他方法?
我正在寫一個網絡應用程序。在其數據庫中有一個表,它保留了一些到期日期。 另一個表有兩列:name
和state
。我希望state
列在任何到期日期到達時自動更新(更新後的值根據我的程序中的某些邏輯進行計算)。如何在系統日期和時間到期時自動更新我的數據庫表?
我該如何實現此功能?在服務器機器上運行另一個程序(獨立於我的Web應用程序)是否很常見,以檢查數據庫的到期日期和更新表,還是有其他方法?
儘管有些數據庫支持計劃任務,但大多數DBA使用cron
來安排執行該任務的任務。
我建議你也這樣做。
(感謝噓聲爲他的評論)
取決於dbms。一些有任務調度程序 - PostgreSQL,DB2。可能是其他人。 –
@Catcall好的。更新了我的答案。謝謝。 – Bohemian
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事件也在後臺運行。
@ X.Jacobs「其」(意爲屬於「它」)沒有撇號。我已經編輯了這個問題來糾正這個錯誤,然後你把它放回去了。學習如何拼寫並在那裏留下「它的」。 – Bohemian