我有一个作业表,我在其中插入新作业。 此表还包含作业发布日期。
默认情况下,当新插入时,作业状态会打开。
现在我想在作业超过30天时将作业状态从打开更改为关闭。
我将如何做到这一点?
答案 0 :(得分:3)
尝试创建一个每天运行的事件,如下所示
CREATE EVENT myevent
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 DAY
DO
UPDATE my_table SET status ='closed'
WHERE post_date > DATE_ADD(now(), INTERVAL -30 DAY)
AND status='open'
- 更新更改语法
CREATE EVENT myevent
ON SCHEDULE EVERY 24 HOUR
DO
UPDATE my_table SET status ='closed'
WHERE post_date > DATE_ADD(now(), INTERVAL -30 DAY)
AND status='open'
答案 1 :(得分:1)
使用cron作业来处理这个问题。 http://en.wikipedia.org/wiki/Cron
如果你不能处理crons,你可以做一个“穷人的cron”。表示当有人访问您的页面时更新所有作业记录的实际过程(在上次运行时进行额外检查)。如果您正在以“糟糕”的方式进行,我建议启动另一个线程以保持您的网站负责。