我正在撰写网络应用。在数据库中,有一个表,可以保留一些截止日期。 另一个表格有两列:name
和state
。我希望state
列在任何到期日期到来时自动更新(更新后的值根据我程序中的某些逻辑计算)。
如何实现此功能?在服务器计算机上运行另一个程序(独立于我的Web应用程序)以检查数据库是否有截止日期并更新表或其他方法是否常见?
答案 0 :(得分:1)
虽然某些数据库支持计划任务,但大多数DBA使用cron
来安排完成工作的任务。
我建议你这样做。
(感谢catcall的评论)
答案 1 :(得分:0)
DELIMITER $$
CREATE EVENT 'DBNAME'.'EVENTNAME'
ON SCHEDULE
EVERY 1 DAY
ON COMPLETION PRESERVE
ENABLE
DO
BEGIN
/*sql statements*/
UPDATE tableName SET state = 'newState' where NOW() = (SELECT * FROM tableWithDates);
END
DELIMITER ;
这是在MySql中创建事件的代码。您可以使用Mysql事件更新表中的数据。此事件每1天运行一次,然后执行sql查询。 MySql事件也在后台运行。