Mysql定时器使用(本人亲笔亲测-开发使用)

前言:

我有个需求,数据库中有任务数据,每一条任务都有一个时间,时间超过2小时了,那我就将他的状态修改掉。


第一步,开启定时器。

查看定时器,是否为开启状态。

show variables like '%event_sche%';`

开启定时器

set global event_scheduler=1;

第二步,创建存储过程

说明:存储过程,可以理解为sql语句(触发后的事件),当定时器的条件(时间到了,或者参数改变了)达到了,执行存储过程的语句。

编写存储过程

create procedure test_proce() --自定义的存储过程名称
begin 
 UPDATE news_details set `status` = 0 where
 date_add(complete_time,INTERVAL 2 HOUR) < now() and (`status` not in (1,0)  or  	`status` is null);
end;

第三步,定时器创建(定时执行存储过程)

create event test_event  --test_event定时任务的名称
on schedule every 10 second   --每10秒执行一次
on completion preserve disable  --创建后并不立即生效
do call test_proce();  --调用存储过程(存储过程的名称)

执行时记得删除掉--注释

第四步,开启事件

alter event test_event  on completion preserve enable;

成功

 

参考:Mysql 定时器 - 拐弯 - 博客园   --这位兄弟写的真的不错

おすすめ

転載: blog.csdn.net/qq_38403590/article/details/120333235