用一个小例子介绍mysql如何设置定时任务,以下内容是由微蓝经验网用户发布mysql 定时执行 mysql如何设置定时任务,希望对于用户有一定帮助,为朋友进行解决疑惑,如若想了解更多相关内容,可以向底部移动了解更多与本教程文章相关解决经验方法!
mysql 5.7.18;Win10
打开Power Shell(或cmd),进入mysql后,先使用命令
show variables like "%event_sche%";
查看是否有开启event_scheduler,如图我是关闭的。

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

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

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

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

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

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

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

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

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

例子到这里就结束了,最后总结一下,定时任务是通过设置事件来完成的(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 事件名;





微蓝网部分素材(图片、视频、音频等)来自于网络,不代表本站立场,以上素材或内容仅代表作者个人观点,因此产生相关问题作者本人负责,本站将不承担任何法律责任! 如有问题请进行侵权投诉
© 2025 VLPOS.com 版权所有 微蓝网 ICP备案号:黑ICP备20003952号-1
黑公网安备 23012602000120号