mysql数据库定时清理数据

mysql数据库定时清理数据
一:查看调度,设置调度开启
1.查看调度 SELECT @@event_scheduler
2.设置调度开启:
– 设置方法(开启)

SET @@global.event_scheduler = ON;

– 设置方法(关闭)
SET @@global.event_scheduler = OFF;
二:创建存储过程

DELIMITER $$
USE `db`$$
DROP PROCEDURE IF EXISTS `auto_del_90`$$
CREATE DEFINER=`root`@`%` PROCEDURE `auto_del_90`()
BEGIN
DELETE FROM my_table WHERE CREATE_TIME <= DATE(DATE_SUB(NOW(),INTERVAL 90 DAY));
END$$
DELIMITER ;

三:创建事件

指定时间时间执行,可用户测试存储过程是否有效:

CREATE DEFINER = `root`@`%` EVENT `event_auto_del_90` 
ON SCHEDULE AT '2020-11-27 09:46:01' 
ON COMPLETION PRESERVE
ENABLE 
DO 
	CALL auto_del_90 ();

创建周期性执行事件(每周执行):

CREATE DEFINER = `root`@`%` EVENT `event_auto_del_90` ON SCHEDULE
 EVERY 1 WEEK STARTS '2020-11-27 10:03:06' ON COMPLETION 
 PRESERVE
 ENABLE 
DO
	CALL auto_del_90 ()

说明:创建事件时有一个参数 PRESERVE
PRESERVE:当事件指定了ends,事件到期后不会drop
NOT PRESERVE :当事件指定了ends,事件到期后会drop该事件

猜你喜欢

转载自blog.csdn.net/qq_42011565/article/details/110222531