admin 管理员组

文章数量: 1103806

概论

mysql计划任务可以定时更新数据库表或者做大文件的汇总表

配置

开启计划任务

SHOW VARIABLES LIKE 'event_scheduler' 查看是否开启 off 表示未开启

set global event_scheduler =1 此次重启之后的mysql器件生效

永久生效

可见已经开启

语法体

create event myevent

on schedule at current_timestamp + interval 1 hour (周期或者时间点)

do

update myschema.mytable set mycol = 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 |

create event B on schedule every 1 second

comment '计划任务注释'

do

begin

insert into smudge.fruit value ('banana');

insert into smudge.fruit value ('apple');

end |

delimiter ;

临时关闭事件

alter event smudge_insert disable;

临时开启事件

alter event smudge_insert enable;

删除计划任务

drop event smudge_insert;

本文标签: 架构 计划 MySQL schedule everyMysql