根据项目需要,需要创建自动删除指定日期前数据的表,记录一下过程。
- 创建表
先建好表格 ,存储数据 我有两个表格 一个是atest_0003 一个是atest_0004.
- 创建存储过程
date_inter 是条件 保留数据天数的条件。
DELIMITER $$
USE `collet_date`$$
DROP PROCEDURE IF EXISTS `del_count`$$
CREATE DEFINER=`jys`@`%` PROCEDURE `del_count`(IN `date_inter` INT)
BEGIN
DELETE FROM atest_0003 WHERE (TO_DAYS(NOW()) - TO_DAYS(FROM_UNIXTIME(UNIX_TIMESTAMP(created),'%Y%m%d'))) >=date_inter;
DELETE FROM atest_0004 WHERE (TO_DAYS(NOW()) - TO_DAYS(FROM_UNIXTIME(UNIX_TIMESTAMP(created),'%Y%m%d'))) >=date_inter;
END$$
DELIMITER ;
按F9执行一下。
- 创建event
保留三十天数据
DELIMITER $$
ALTER DEFINER=`jys`@`%` EVENT `del_event` ON SCHEDULE EVERY 1 DAY STARTS '2019-1-2 11:30:00'
ON COMPLETION NOT PRESERVE ENABLE
DO CALL del_count(30)$$
DELIMITER ;
按F9执行一下
4. 启用事件
ALTER EVENT del_event ON COMPLETION PRESERVE ENABLE;
- 关闭事件
ALTER EVENT del_event ON COMPLETION PRESERVE DISABLE;