我有一个用于订阅详情的mysql表
它有一个start_date,end_date和status字段
现在,我想做的是每当达到订阅的end_date时,我希望状态字段从活动变为非活动
例如,当end_date> curdate,更新订阅表设置状态=不活动
有没有办法在每天结束时运行支票来检查和更新?
我该怎么做?
答案 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)所有内容,这样你的内存使用量就不会超过。