自動更新字段如果我有以下表中的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
什麼是MySQL來自動改變「過期」領域的最佳方式「1」,一旦EXP_DATE傳遞?
自動更新字段如果我有以下表中的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
什麼是MySQL來自動改變「過期」領域的最佳方式「1」,一旦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)
的索引可以使該更新鎖只有它需要的行。
一定要啓用事件調度程序。這是默認關閉的,而旅行了很多的人誰不想使用它:
mysql> SET GLOBAL event_scheduler = 1;
閱讀更多的細節在這裏的文檔:http://dev.mysql.com/doc/refman/5.6/en/events.html
你可以使用MySQL的活動,每天運行一次來更新比較EXP_DATE當前日期表
這裏一定有迴音。 –
雖然你_could_使用[MySQL的調度事件]做(http://dev.mysql.com/doc/refman/5.1/en/create-event.html),我個人建議從cron運行一個腳本來觸發更新語句。 –