在navicat上设置定时计划执行存储过程

时间:2021-02-24 07:57:00



转载自: http://blog.csdn.net/everything1209/article/details/48519877


向原作者致敬, 如有冒犯请联系本人删除即可.



应用情景:

有一个存储过程,需要每天定时执行一次。所以在navicat上使用事件处理,当然还有其他的方法,这只是一种。作为参考

1.事件定义填写

在navicat上设置定时计划执行存储过程

2.事件计划设置

在navicat上设置定时计划执行存储过程

关于every 最右边的下拉框是可以选择其他的有每分钟的每小时的还有没秒的,详细的给大家列出来

   SECOND 秒 SECONDS 
 MINUTE 分钟 MINUTES 
 HOUR 时间 HOURS 
 DAY 天 DAYS 
 MONTH 月 MONTHS 
 YEAR 年 YEARS 
 MINUTE_SECOND 分钟和秒 "MINUTES:SECONDS" 

 HOUR_SECOND 小时分钟, "HOURS:MINUTES:SECONDS" 

 HOUR_MINUTE 小时和分钟 "HOURS:MINUTES" 
 DAY_HOUR 天和小时 "DAYS HOURS" 
 YEAR_MONTH 年和月 "YEARS-MONTHS" 
 DAY_MINUTE 小时分钟 "DAYS HOURS:MINUTES" 
 DAY_SECOND 小时分钟秒 "DAYS HOURS:MINUTES:SECONDS"


1)通过sql创建定时器事件:

create event if not existseventJob 
on schedule every 2 second STARTS '2015-11-25 00:00:00'
on completion PRESERVE 

ENABLE
do callmypro();

上述sql脚本中"eventJob "为定时器事件名称,"mypro"mysql函数或者存储过程。sql脚本表示从 '2015-07-25 00:00:00'开始,每2秒钟执行mypro()函数一次。当然也可以设置结束时间。


3.保存

点击上方保存即可



常见问题:

   navicat for MySQL 创建事件的时候,保存时弹出提示“事件计划已关闭。事件只能在服务器启动并开启事件计划时才能处理。

解决方法:

检查一下mysql的和系统变量 event_scheduler 

show variables like 'event_scheduler ';

从你的描述看来应该是没有打开。 set global event_scheduler=on; 打开这个设置。