[英]How to update date field automatically from a timestamp field in Mysql 5.5?
[英]Automatically update field according to timestamp
如果我在mysql中有下表:
Table 1:
id name expired exp_date
1 Andrew 0 2015-12-09 20:00:00
2 John 1 2013-01-01 20:00:00
3 Mike 0 2017-01-13 21:00:00
傳遞exp_date后,mysql自動將“ expired”字段更改為“ 1”的最佳方法是什么?
您可以使用mysql事件,每天運行一次以更新表,將exp_date與當前日期進行比較
其他人已經在我編寫答案時評論並回答了使用MySQL事件的建議,但我將舉一個例子:
CREATE EVENT expire_table1
ON SCHEDULE EVERY 1 HOUR
DO UPDATE table1 SET expired = 1 WHERE expired = 0 AND exp_date < NOW();
在(expired, exp_date)
上有一個索引以使UPDATE僅鎖定其需要的行將很有用。
確保啟用事件計划程序。 默認情況下它是關閉的,這讓很多想使用它的人感到震驚:
mysql> SET GLOBAL event_scheduler = 1;
在此處閱讀文檔以獲取更多詳細信息: http : //dev.mysql.com/doc/refman/5.6/en/events.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.