MYSQL利用事件和存储过程实现执行定时任务

比如有如下需求:删除某个表中当前时间距离日期字段(create_date) 大于8分钟的所有记录,每30s执行一次该操作。

1.创建存储过程test()

//删除ljh_test表中超过8分钟的记录

//date_add() 增加

//date_sub()减少

//month 月份 minute 分钟 second 秒

//例如:select DATE_ADD(NOW(),INTERVAL 1 MONTH); //一个月后的时间

 CREATE PROCEDURE test ()

  BEGIN

    delete from ljh_test WHERE create_date <= DATE_SUB(NOW(),INTERVAL 8 MINUTE);
  END;

2.创建事件e_test,每30秒执行test()存储过程

-- 示例1
CREATE EVENT if not exists e_test
on schedule every 30 second
on completion preserve
do call test();

-- 示例2
CREATE EVENT if not exists proc_syncData_unit_event
on schedule every 5 MINUTE
on completion preserve
do call proc_syncData_unit();

3.查看mysql中event_scheduler是否打开

show variables like 'event_scheduler'

如果在关闭状态,需要打开它

set global event_scheduler=1;

 

启动某事件任务

alter event e_test ON COMPLETION PRESERVE ENABLE;

关闭某事件任务

alter event e_test ON COMPLETION PRESERVE DISABLE;

删除某事件

drop EVENT e_test

删除某存储过程

drop PROCEDURE test

MYSQL利用事件和存储过程实现执行定时任务

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值