簡體   English   中英

根據時間戳自動更新字段

[英]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與當前日期進行比較

https://dev.mysql.com/doc/refman/5.1/en/events.html

其他人已經在我編寫答案時評論並回答了使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM