首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据时间戳自动更新字段

根据时间戳自动更新字段
EN

Stack Overflow用户
提问于 2014-03-13 18:28:23
回答 2查看 53关注 0票数 1

如果我在mysql中有下表:

代码语言:javascript
复制
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自动将“过期”字段更改为“1”的最佳方式是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-13 18:40:41

在我撰写答案时,其他人提出了使用MySQL事件的建议,并对此作出了评论和回答,但我将包括一个例子:

代码语言:javascript
复制
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)上有一个索引来使更新只锁定它需要的行是很有用的。

确保启用事件调度程序。默认情况下,它是关闭的,这会让许多想要使用它的人感到震惊:

代码语言:javascript
复制
mysql> SET GLOBAL event_scheduler = 1;

有关更多详细信息,请参阅文档:http://dev.mysql.com/doc/refman/5.6/en/events.html

票数 1
EN

Stack Overflow用户

发布于 2014-03-13 18:37:26

您可以使用mysql事件,每天运行一次更新表,将exp_date与当前日期进行比较。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22387710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档