2013-01-15 23 views
0

可能重複:
Is there an equivalent to cron in Windows?如何定期更新MySQL中的數據?

如何在MySQL更新我的數據定期?

說我有桌子。一列是「日期」。另一列是「Expiry_Status」。

如何定期更新表格(幾個小時),使得如果「日期」列中的日期在當前日期之後,「Expiry_Status」將更新爲「是」值。

我正在使用WAMP作爲框架。

編輯:謝謝你的答案,但你們很多人給出了關於改變數據庫體系結構的答案。我上面給出的例子只是一個簡單的例子。我更關心數據庫如何定期更新。即:使用的程序,語法,範例....等等。 再次感謝。

+0

我認爲這必須用編程語言來完成。既然你是在Windows上,你應該考慮使用Task Scheduler來運行一個腳本,它可以隨時更新你的數據庫。 – user1477388

+2

您可以設置一個cron-job/task scheduler作業,但您爲什麼要這麼做呢?任何一個都足夠了,存儲日期和狀態都會存儲重複信息,並且很容易導致數據庫中的不一致。 – jeroen

回答

1

您編寫了一個程序來執行更新,然後使用計劃系統運行它。

在Windows上(因爲您標記了問題WAMP),通常通過Task Scheduler來完成。其他操作系統通常使用。

更改狀態列雖然是多餘的。您可以搜索到期時間大於NOW()而非狀態爲Yes的數據。這種排定的腳本通常在舊數據被刪除時使用。

1

編寫一個php腳本,檢查時間和更新,然後使用windows task scheduler以一定的時間間隔運行它們。 (假設Windows操作系統...)

1

這個expiry_status甚至可以提供什麼服務?如果在該日期/時間字段(你將需要無論如何有效地更新expiry_status場)的指數,你可以很容易地查詢上...

WHERE `date` > NOW() 

...爲了確定活動記錄。無論如何,這本質上就是你要用這個建議的更新查詢來完成的事情。如果你不需要,爲什麼要保持一個額外的領域?