概论
mysql计划任务可以定时更新数据库表或者做大文件的汇总表
配置
开启计划任务
SHOW VARIABLES LIKE 'event_scheduler'查看是否开启 off 表示未开启
set global event_scheduler =1此次重启之后的mysql器件生效
永久生效
可见已经开启
语法体
createeventmyeventonscheduleatcurrent_timestamp+interval1hour(周期或者时间点)doupdatemyschema.mytablesetmycol = mycol +1; (执行的sql)
周期或者时间点语法
每1秒执行
on schedule every 1 second
10天后执行
on schedule at current_timestamp + interval 10 day
指定日期时间执行
on schedule at timestamp '2016-08-16 00:00:00'
每天凌晨3点执行
on schedule every 1 day
starts '2016-05-18 03:00:00'(设定从第二天凌晨3点开始)
每天定时执行,5天后停止执行
on schedule every 1 day
ends current_timestamp + interval 5 day
5天后开启每天定时清空test表,一个月后停止执行
on schedule every 1 day
starts current_timestamp + interval 5 day
ends current_timestamp + interval 1 month
高级用法
执行多条sql
delimiter |createeventBonschedule every1secondcomment'计划任务注释'dobegininsertintosmudge.fruitvalue('banana');insertintosmudge.fruitvalue('apple');end|delimiter ;
临时关闭事件
alter event smudge_insert disable;
临时开启事件
alter event smudge_insert enable;
删除计划任务
drop event smudge_insert;
原文链接:https://segmentfault.com/a/1190000005142597