说明
任务是每隔一小时执行一次,删除半年前的日志,包括日志备份表。
代码(说明看注释)
定时删除日志代码:
sql定时任务相关代码(每1小时执行一次,启动时会执行一次,删除system_log和system_log_bak下超过180天):
-- 自定义声明 /endAll/是结束,防止在命令行中,每行单独执行
delimiter /endAll/
DROP EVENT IF EXISTS deleteOldLog;
CREATE EVENT IF NOT EXISTS deleteOldLog
-- 每小时执行一次
ON SCHEDULE EVERY 1 HOUR-- 执行完成后保留(对应删除)
ON COMPLETION PRESERVE
-- 执行完成后直接开始运行
ENABLE
COMMENT '定时删除过旧的日志'
-- 实际行为
DO
BEGIN
delete from system_log where `create_time` < (UNIX_TIMESTAMP(now()) * 1000 - 15552000000);
delete from system_log_bak where `create_time` < (UNIX_TIMESTAMP(now()) * 1000 - 15552000000);
END
/endAll/
delimiter ;