1

我正在编写一个Web 应用程序。在它的数据库中,有一个表格保存了一些截止日期。另一个表有两列:namestate。我希望在state这些到期日期中的任何一个到达时自动更新该列(更新的值是根据我的程序中的某些逻辑计算的)。

我怎样才能实现这个功能?在服务器机器上运行另一个程序(独立于我的 Web 应用程序)来检查数据库的到期日期并更新表是否很常见,或者还有其他方法吗?

4

2 回答 2

1

尽管一些数据库支持计划任务,但大多数 DBA 使用cron计划任务来完成工作。

我建议你这样做。

(感谢 catcall 的评论)

于 2012-12-18T23:48:34.123 回答
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 事件也在后台运行。

于 2013-08-25T17:35:00.153 回答