开启mysql定时任务,关闭过了求助时间的帖子

在项目中,经常需要对一些过期的数据进行处理。这类数据如果业务复杂,推荐在代码里处理。如果逻辑相对简单,推荐在mysql数据库层面处理。这时候,我们就用到了mysql的定时器功能。例子:

select * from tiezi_tab t
where t.datastatus < 3
and t.typeflag=3 
and t.endtime < NOW()
;
#5117
select * tiezi_tab t
where id=5117
;


#查看数据库版本
select VERSION()
;
#查看定时器功能是否开启(mysql默认是关闭这个功能的)
show VARIABLES LIKE '%sche%'
;
#开启定时器功能
set GLOBAL event_scheduler = 1
;


#2.2、创建evevt要调用的存储过程test_proce
drop procedure if exists tiezi_close_proce
;


delimiter //
create procedure tiezi_close_proce()
begin
update tiezi_tab t 
set t.datastatus=3
where t.datastatus!=3 and t.datastatus!=4 and t.typeflag=3 and t.endtime < NOW();
end //
delimiter ;




#2.4、创建事件test_event(其作用:每隔一秒自动调用test_proce()存储过程)
drop event if exists tiezi_close_event
;
create event tiezi_close_event
on schedule every 60 second
on completion preserve disable
do call tiezi_close_proce()
;
#2.5、开启事件test_event
alter event tiezi_close_event on completion preserve enable
;
#2.6、关闭事件test_event
alter event tiezi_close_event on completion preserve disable
;


#3.查看自己创建的event
#如果要查看更加详细的信息,你需要root用户的授权,如果是你自己的数据库你可以用下面语句查看
select * from  mysql.event
;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值