2011-09-20 99 views
2

的价值我有订阅细节MySQL表自动更新的MySQL场基于其他领域

它有一个日期,结束日期和状态字段

现在,我想要做的是,每当END_DATE到达订阅,我想状态字段从活动更改为不活动

例如当END_DATE> CURDATE,更新订阅表设置状态=无效

有没有办法运行在一查到底EAC h天检查并更新这个?

我该怎么做?

回答

0

可以使用cron joblinux基于服务器的数据库和PHP

2

检查和操作数据为什么不创建一个视图,并计算出状态。然后使用视图,而不是表:

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

你需要写的是,在这样的

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

后台运行,只是在外壳(PHP脚本-f执行它的脚本。 PHP)并把它放在后台,它会做你想做的。请记住,记忆是重要的。确保你在每个循环中取消设置($ var)所有的内容,这样你的内存使用率就不会达到顶峰。

+0

为什么[重塑](http://wikipedia.org/wiki/Cron)[wheel](http://wikipedia.org/wiki/Windows_Task_Scheduler)? –

+0

我做了很多,这是非常有用的东西。我使用后端cli脚本运行我的大部分站点。 – macintosh264