Mysql定时任务

**

Mysql定时任务

**
很多时候,根据项目的需求,都需要定时去修改数据库中的数据,比如说,用户会员vip到期了,则需要修改用户的等级状态数据等等…

1创建定时任务,首先创建一个需要执行的存储过程

--判断是否存在,如果操作就直接删除掉
DROP PROCEDURE IF EXISTS p_pe_sort;
--创建存储过程
CREATE PROCEDURE p_pe_sort() 
BEGIN
-- ** 执行语句 (多条则以“;”分开,最后需以“;”结尾)**--
  UPDATE t_publish_extended
  SET sort = 0, deliverystate = 1
  WHERE NOW() NOT BETWEEN starttime AND endtime;
 -- ** 执行语句 (多条则以“;”分开,最后需以“;”结尾)**--
END

2开始创建定时任务


CREATE EVENT IF NOT EXISTS e_pe_sort
-- 一分钟调起一次
ON SCHEDULE EVERY 1 MINUTE  
-- ** 当事件不会再发生的情况下,删除事件(注意特定时间执行的事件,如果设置了该参数,执行完毕后,事件将被删除,不想删除的话可以设置成ON COMPLETION PRESERVE ** --
ON COMPLETION [NOT] PRESERVE
-- 需调起的方法
DO CALL p_pe_sort();

3开启关闭事件

-- 关闭事件
ALTER EVENT e_pe_sort ON COMPLETION PRESERVE ENABLE;

-- 开启事件
ALTER EVENT e_pe_sort ON COMPLETION PRESERVE DISABLE;

这样之后,可能大家还会看到事件没有启动,查看任务则提示如下
—- mysql‘事件计划已关闭。事件只能在服务器启动并开启事件计划时才能处理。’的警告,这时我们就要进行第四步

4查询event是否开启,如果没有开启,则进行第五步

show variables like '%sche%';

5通过执行下列语句,来开启event_scheduler

set global event_scheduler =1;
或者
set global event_scheduler=on; 
  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值