如何自动更新数据库中的记录?

时间:2012-03-06 11:27:42

标签: php mysql auto-update

我有一个作业表,我在其中插入新作业。 此表还包含作业发布日期。

默认情况下,当新插入时,作业状态会打开。

现在我想在作业超过30天时将作业状态从打开更改为关闭。

我将如何做到这一点?

2 个答案:

答案 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”。表示当有人访问您的页面时更新所有作业记录的实际过程(在上次运行时进行额外检查)。如果您正在以“糟糕”的方式进行,我建议启动另一个线程以保持您的网站负责。