事件调度程序应每月执行一次

时间:2011-04-19 05:47:47

标签: mysql scheduled-tasks

我的机器上安装了Win XP操作系统和XAMPP。

我需要在每个月的第一天凌晨00:00:00执行我的事件/日程安排程序。 意味着每个月的第1天。 (例如,1月1日,2月1日,3月1日,......)。

和 我还需要在同一事件中调用存储过程。 而且我希望只使用Event / Job来实现所有这些,而不是从前端。

请花几分钟时间查询。

2 个答案:

答案 0 :(得分:17)

MySQL事件语法非常简单 -

DELIMITER $$
CREATE EVENT event1
ON SCHEDULE EVERY '1' MONTH
STARTS '2011-05-01 00:00:00'
DO 
BEGIN
 -- your code
END$$

DELIMITER ;

活动将于'00:00:00'开始工作'2011-05-01'(日期时间必须在将来)。

更多信息 - Using the Event Scheduler

不要忘记启用全局事件调度线程 -

SET GLOBAL event_scheduler = 1;

答案 1 :(得分:0)

假设您的mysql数据库存在于Web服务器上,您可以设置一个在每个月的第一天运行的cron作业。您的服务器可能提供了一些Web界面来执行此操作。

如果您无法从服务器本身启动cron作业,那么可以使用免费的Web服务来设置在给定时间调用服务器上脚本的cron作业。

cron作业调用的脚本可以是运行查询的简单php脚本。

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
mysql_query(' /* insert query here */ ');
mysql_close($link);

您可能希望包含一些错误检查,并向自己发送有关成功/失败的电子邮件,或在日志文件中保留一些消息。这样,您可以监视脚本是否完全运行和/或成功运行。