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

30 篇文章 16 订阅
9 篇文章 0 订阅

前言:

我有个需求,数据库中有任务数据,每一条任务都有一个时间,时间超过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 定时器 - 拐弯 - 博客园   --这位兄弟写的真的不错

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值