【发布时间】:2012-03-06 11:27:41
【问题描述】:
我有一个工作表,可以在其中插入新工作。 此表还包含职位发布日期。
默认情况下,当新插入发生时,作业状态为打开。
现在我想在作业超过 30 天时将作业的状态从打开更改为关闭。
我该怎么做?
【问题讨论】:
标签: php mysql auto-update
我有一个工作表,可以在其中插入新工作。 此表还包含职位发布日期。
默认情况下,当新插入发生时,作业状态为打开。
现在我想在作业超过 30 天时将作业的状态从打开更改为关闭。
我该怎么做?
【问题讨论】:
标签: php mysql auto-update
尝试创建一个每天运行的事件,如下所示
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'
【讨论】:
SHOW events from DbName查看是否已创建事件
SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME = 'myevent' AND EVENT_SCHEMA = 'DbName'
使用 cron 作业来处理这个问题。 http://en.wikipedia.org/wiki/Cron
如果你不能处理 cron,你可以做一个“穷人的 cron”。表示当有人访问您的页面时会发生更新所有作业记录的实际过程(在最后一次运行时进行额外检查)。如果您这样做是“糟糕”的方式,我建议您关闭另一个线程以保持您的网站负责。
【讨论】: