mysql如何设置定时任务

2025-12-03 13:11:48

1、打开Power Shell(或cmd),进入mysql后,先使用命令

show variables like "%event_sche%";

查看是否有开启event_scheduler,如图我是关闭的。

mysql如何设置定时任务

2、如果是关闭的,使用命令

set global event_scheduler=1;

打开event_scheduler,打开后再次查看,结果如图。

如果想关闭event_scheduler,则命令为

set global event_scheduler=0;

mysql如何设置定时任务

3、接着选择一个数据库,然后创建表sche_task来演示设置定时任务。

创建表的sql语句及表的结构如图。

mysql如何设置定时任务

4、接下来创建一个函数作为定时任务,该函数是向sche_task表中插入一条数据。

创建函数的sql语句如图。注意要用delimiter来限定结束符。

mysql如何设置定时任务

5、接着先使用命令

show events \G

查看已有的事件,如图,我是没有创建过事件的。

mysql如何设置定时任务

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

mysql如何设置定时任务

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

mysql如何设置定时任务

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

mysql如何设置定时任务

9、如果想停止定时任务,可以使用命令(以停止insert_task为例)

alter event insert_task on completion preserve disable;

停止后查看事件,如图。

另外,开启事件的命令为(以开启insert_task为例)

alter event insert_task on completion preserve enable;

mysql如何设置定时任务

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

mysql如何设置定时任务

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 事件名;

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢