查看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
mysql定时任务,把7天的数据存到历史表,再删除7天前的数据
最新推荐文章于 2024-03-12 16:16:38 发布