mysql定时任务,把7天的数据存到历史表,再删除7天前的数据

查看mysql事件是否已开启,ON开,OFF关。
SHOW VARIABLES LIKE  'event_scheduler'

1:新建存储过程。

use 数据库名;
delimiter$$ #设置mysql结束符号为 $$
CREATE PROCEDURE 存储过程名(IN date_inter int) 
begin 
insert into 历史表(字段1,字段2) select 字段1,字段2 from 原表 
where (TO_DAYS(NOW()) - TO_DAYS(原表中日期字段名))>=date_inter; 
delete from 原表 where (TO_DAYS(NOW()) - TO_DAYS(原表中日期字段名))>=date_inter;
end$$
delimiter; #设置mysql结束符号为 ;

2:新建事件

CREATE EVENT 事件名 
ON SCHEDULE EVERY 1 MINUTE #一分钟执行一次
ON COMPLETION PRESERVE ENABLE  #设置该事件为启动状态,执行完该代码会立刻执行该事件
DO call 存储过程名(天数);#因一执行完该sql就会立刻调用存储过程,请检查存储过程中是否有修改和删除语句,确认无误后方可执行。也可使用下面语句

CREATE EVENT 事件名 
ON SCHEDULE EVERY 1 MINUTE #一分钟执行一次
ON COMPLETION PRESERVE DISABLED  #设置该事件为关闭状态,执行完该代码不会启动该事件
DO call 存储过程名(天数);

若想启动为启动的事件
ALTER EVENT 事件名
DISABLE|ENABLE#不可执行|可执行

3:修改事件执行周期
#修改事件执行时间为每天凌晨1点。

ALTER EVENT 事件名
ON SCHEDULE EVERY 1 DAY STARTS DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INT
  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值