Mysql 根据时间戳自动更新字段
如果我在mysql中有下表:Mysql 根据时间戳自动更新字段,mysql,database,timestamp,sql-update,Mysql,Database,Timestamp,Sql Update,如果我在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\u日期过去,mysql自动将“expired”字段更改为“1”的最佳方式是什么?您可以使用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\u日期过去,mysql自动将“expired”字段更改为“1”的最佳方式是什么?您可以使用mysql事件,每天运行一次,以更新比较exp\u日期与当前日期的表
在我写答案时,其他人评论并回答了使用MySQL事件的建议,但我将举一个例子:
CREATE EVENT expire_table1
ON SCHEDULE EVERY 1 HOUR
DO UPDATE table1 SET expired = 1 WHERE expired = 0 AND exp_date < NOW();
阅读此处的文档了解更多详细信息:虽然您可以使用,但我个人建议从cron运行一个脚本来触发update语句。这里必须有一个echo。
mysql> SET GLOBAL event_scheduler = 1;