转载自: http://blog.csdn.net/everything1209/article/details/48519877
向原作者致敬, 如有冒犯请联系本人删除即可.
应用情景:
有一个存储过程,需要每天定时执行一次。所以在navicat上使用事件处理,当然还有其他的方法,这只是一种。作为参考
1.事件定义填写
2.事件计划设置
关于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; 打开这个设置。