根据其他字段的值自动更新mysql字段

时间:2011-09-20 17:58:27

标签: php mysql

我有一个用于订阅详情的mysql表

它有一个start_date,end_date和status字段

现在,我想做的是每当达到订阅的end_date时,我希望状态字段从活动变为非活动

例如,当end_date> curdate,更新订阅表设置状态=不活动

有没有办法在每天结束时运行支票来检查和更新?

我该怎么做?

3 个答案:

答案 0 :(得分:2)

为什么不创建视图并计算状态。然后使用视图而不是表:

CREATE VIEW vwSubscription
   AS 
  SELECT
      start_date,
      end_date,
      IF(end_date > curdate, 'inactive', status) as status
  FROM subscription

答案 1 :(得分:0)

您可以使用基于cron job的服务器中的linux来检查和操作db中的数据

答案 2 :(得分:-1)

您需要编写的是一个在后台运行的脚本

while (true) {
   echo 'updating';
   //check rows here
   echo 'done';
   sleep(10);
 }

只需在shell中执行它(php -f script.php)并将其放在后台,它就能完成您想要的操作。记住记忆很重要。确保你在每个循环中取消设置($ var)所有内容,这样你的内存使用量就不会超过。