创建自动删事件

根据项目需要,需要创建自动删除指定日期前数据的表,记录一下过程。

  1. 创建表
    先建好表格 ,存储数据 我有两个表格 一个是atest_0003 一个是atest_0004.
    表0003
  2. 创建存储过程
    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执行一下。

  1. 创建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;
  1. 关闭事件
ALTER EVENT del_event ON COMPLETION PRESERVE DISABLE;

猜你喜欢

转载自blog.csdn.net/linxue110/article/details/85603770