MySQL定时任务(每天0点自动执行)

有些简单的数据库操作的定时任务,可以不需要通过服务器,只需通过MySQL就可实现

如:每天0点修改所有的状态

实现方式:用MySQL事件

1.用navcat-事件-新建事件

2.设置计划任务,写需要执行的MySQL语句

3.保存-输入事件名-保存成功

4.别忘了最后,开启计划任务(SET GLOBAL event_scheduler = ON;)

如图:MySQL定时任务(每天0点自动执行)

上图AT表示该事件只执行一次

EVERY表示可多次重复执行,前面1表示循环的周期,DAY表示周期-每天(当然这里有很多选择,月,周,小时等等)

STARTS是一个 timestamp 值表示事件开始时间

+INTERVAL表示间隔以指定「由现在开始」的时间量

ENDS表示事件的结束时间

上图所设置的就表示:从2020年五月27号开始,每天0点执行

 

那么如何添加自己的业务呢?

点计划旁边的定义,就可以添加自己所需的业务了,如下图

MySQL定时任务(每天0点自动执行)

这里只是做简单的修改表中的某个值,具体的根据自己的业务写所需的MySQL语句

你也可以新建MySQL函数,然后在上图所示的定义区域用call()调用该函数

 

最后

1.查看是否开启定时任务

show variables like '%event%';

查看event_scheduler如果为OFF或0就表示关闭

2.如果定时任务关闭,用下面命令开启

使用下列的任意一句开启计划任务:
SET GLOBAL event_scheduler = ON;
SET @@global.event_scheduler = ON;
SET GLOBAL event_scheduler = 1; -- 0代表关闭
SET @@global.event_scheduler = 1;

最后可通过1再次查看event_scheduler是否开启