mysql如何设置定时任务
1、打开Power Shell(或cmd),进入mysql后,先使用命令
show variables like "%event_sche%";
查看是否有开启event_scheduler,如图我是关闭的。

2、如果是关闭的,使用命令
set global event_scheduler=1;
打开event_scheduler,打开后再次查看,结果如图。
如果想关闭event_scheduler,则命令为
set global event_scheduler=0;

3、接着选择一个数据库,然后创建表sche_task来演示设置定时任务。
创建表的sql语句及表的结构如图。

4、接下来创建一个函数作为定时任务,该函数是向sche_task表中插入一条数据。
创建函数的sql语句如图。注意要用delimiter来限定结束符。

5、接着先使用命令
show events \G
查看已有的事件,如图,我是没有创建过事件的。

6、查完后,定义一个事件,该事件每过10s调用一次函数fun_insert_task,即每过10s向sche_task中插入一条数据。创建事件的sql语句如图。

7、事件创建成功后,再次查看所有事件,可以看到,所有事件中多了刚刚创建的事件,并处于使用状态。

8、查看表sche_task中的数据,如图可以看到,从定时任务开启起,每过10s插入一条数据,说明定时任务设置成功。

9、如果想停止定时任务,可以使用命令(以停止insert_task为例)
alter event insert_task on completion preserve disable;
停止后查看事件,如图。
另外,开启事件的命令为(以开启insert_task为例)
alter event insert_task on completion preserve enable;

10、停止定时任务后,再次查看表sche_task中的数据,如图可以看到,表数据不再增加。

11、例子到这里就结束了,最后总结一下。
定时任务是通过设置事件来完成的(event是在mysql 5.1以上的版本才有),
使用事件前要先看有没开启event_scheduler,命令为
show variables like '%event_sche%';
开启event_scheduler的命令为
set global event_scheduler = 1;
关闭event_scheduler的命令为
set global event_scheduler = 0;
查看所有事件的命令为
show events \G (\G 带有格式化的效果,输出结果会好看些)
关闭事件的命令为
alter event 事件名 on completion preserve disable;
开启事件的命令为
alter event 事件名 on completion preserve enable;
删除事件的命令为
drop event 事件名;