如何写mysql的定时任务

如题所述

第1个回答  2016-02-02
mysql实现定时任务是有一个时间调度器,所以首先要查看这个时间调度器是否开启。
查看的命令:

show variables like 'event_scheduler'
如果没有打开,则设置打开。设置的命令是:
set global event_scheduler = ON; 或set global event_scheduler = 1;
确定打开事件调度器后,我们可以创建一个定时任务。
创建定时任务的语法为:
create event 定时任务名称
ON schedule 定时时间
do
定时任务所要执行的sql;
example:每隔一分钟往表tt里插入一条数据
create event insert_tt
ON schedule every 1 MINUTE
do
insert into tt values(1);

如果要执行多条sql则可用多个do

create event insert_tt
ON schedule every 1 MINUTE
do
insert into tt values(1);

do
.......
使用命令查看所有的定时任务及其状态:
show processlist
如果要停掉某个定时任务可以使用:
alter event 定时任务名 ON
COMPLETION PRESERVE DISABLE;

example:
alter event insert_tt ON
COMPLETION PRESERVE DISABLE;

开启某个定时任务:
alter event 定时任务名称 ON
COMPLETION PRESERVE ENABLE;
相似回答