mysql定时删除几天前的数据

本文详细介绍了如何在MySQL中开启和管理事件调度器,包括设置事件的周期、启用和禁用事件,以及创建和删除存储过程和事件。同时,提供了实用的SQL指令和示例,帮助读者理解和操作MySQL事件。
查看mysql事件是否已开启,ON开,OFF关。
SHOW VARIABLES LIKE  'event_scheduler'

如果返回的是off表示当前是关闭状态,如果是on当前已经开启了计划任务。
在mysql程序的目录下找到my.cnf文件,添加一个项:event_scheduler = 1
保存后重启mysql服务即可,重启服务可以在服务管理里面找到

也可以用脚本来实现:
mysql event_scheduler
开启event_scheduler sql指令:
SET GLOBAL event_scheduler = ON;
SET @@global.event_scheduler = ON;
SET GLOBAL event_scheduler = 1;
SET @@global.event_scheduler = 1;
相反,关闭event_scheduler指令:

SET GLOBAL event_scheduler = OFF;
SET @@global.event_scheduler = OFF;
SET GLOBAL event_scheduler = 0;
SET @@global.event_scheduler = 0;

1:新建存储过程。

use 数据库名;
DELIMITER $$

DROP PROCEDURE IF EXISTS `prc_del_clicklog_log`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `prc_del_clicklog_log`(IN date_inter INT)
    COMMENT '自动删除日志'
BEGIN
DELETE FROM  statistics_ip WHERE (TO_DAYS(NOW()) - TO_DAYS(created_at))>=date_inter; 
-- DELETE FROM  statistics_ip WHERE DATEDIFF(NOW(),created_at) >= date_inter;  
END$$

DELIMITER ;

2:新建事件

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

CREATE EVENT 事件名 
-- ON SCHEDULE EVERY 1 DAY STARTS '2020-03-31 17:24:00' #设置起始时间
ON SCHEDULE EVERY 1 MINUTE #一分钟执行一次
-- ON COMPLETION PRESERVE ENABLE #设置该事件为启动状态,执行完该代码自动启动该事件
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), INTERVAL 1 HOUR);

如果在新建存储过程中报错,而确定sql语句没有错的话,请检查是否多写了空格!!!!

4:查看存储
show procedure status;
或
select name from mysql.proc where db=’数据库名’;

5:查看事件
show events;

6:删除存储过程
drop procedure 存储过程名;

7:删除事件
drop event 事件名;
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值