共分三步:
1、打开调度(这样才会自动调用事件)
-- 查询方法1
SHOW VARIABLES LIKE 'event_scheduler';
-- 查询方法2(注意: -- 和查询之间有个空格,否则不能被识别为注释)
SELECT @@event_scheduler
-- 设置方法(开启)
SET @@global.event_scheduler = ON;
-- 设置方法(关闭)
-- SET @@global.event_scheduler = OFF;
2、创建一个存储过程
DELIMITER $$USE`qhf`$$DROP PROCEDURE IF EXISTS`auto_del_90`$$CREATE DEFINER=`root`@`%` PROCEDURE`auto_del_90`()BEGIN
/*DATE(发生时间): 是某个事件的日期部分
DATE(DATE_SUB(NOW(),INTERVAL 2 DAY)):从当前的日期减去2天
某一个事件比现在的日期减去2天还小,则说明需要删除了*/
DELETE FROM basetb WHERE DATE(发生时间) <= DATE(DATE_SUB(NOW(),INTERVAL 90 DAY));END$$
DELIMITER ;
第三步:创建事件
DELIMITER $$
ALTER DEFINER=`root`@`%` EVENT `even_auto_del_90` ON SCHEDULE EVE