mysql自动任务—日志备份

一、建立日志备份存储过程

drop procedure if exists pro_baklog;

CREATE PROCEDURE pro_baklog(in days int)
 BEGIN
    DECLARE t_error INTEGER DEFAULT 0;
    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1; 
       START TRANSACTION;
     -- 开始执行事务 
     -- 1、向日志历史表中插入 XX 天以前日志
     insert into platform_log_history
     (    log_type,
          operator_id,
          opt_time,
          opt_class,
          client_ip,
          client_type,
          module_id,
          biz_function,
          log_content,
          operation_result,
          remark,
          dataowner_id,
          product_id,
          tenant_id,
          creator_id,
          gmt_create,
          modifier_id,
          gmt_modified  )
         SELECT log_type,
          operator_id,
          opt_time,
          opt_class,
          client_ip,
          client_type,
          module_id,
          biz_function,
          log_content,
          operation_result,
          remark,
          dataowner_id,
          product_id,
          tenant_id,
          creator_id,
          gmt_create,
          modifier_id,
          gmt_modified
          FROM platform_log 
          where DATE_SUB(CURDATE(), INTERVAL days DAY) >= date(opt_time);
					
         -- 2、删除日志表中 XX天以前日志
         delete from platform_log
         where DATE_SUB(CURDATE(), INTERVAL days DAY) >= date(opt_time); 
				 
        IF t_error = 1 THEN
            ROLLBACK;
        ELSE
            COMMIT;
        END IF; 
 END;

二、建立数据库任务事件

DROP EVENT IF EXISTS eve_baklog ;

CREATE EVENT eve_baklog
ON SCHEDULE EVERY 1 DAY 
STARTS CONCAT(DATE_ADD(CURRENT_DATE(), INTERVAL 1 DAY),' 00:00:00')
DO call pro_baklog(30); 

关于事件的详细用法参考:
https://www.cnblogs.com/javahr/p/9664203.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笑谈子云亭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值