注册 X
提交 注:点击提交后系统会发送邮件到邮箱验证!(仅支持中国大陆邮箱)
我已阅读并同意 服务条款
首页 > IT技术笔记 > 查看笔记

mysql存储过程加定时任务实现按月备份表数据

使用mysql存储过程加定时任务(job)实现把表的数据按月分类创建历史表并把原表数据转移到历史表中。

注:如果执行报语法错误,创建存储过程时和结束时,输入分隔符

        
        
      

        
        
      
owner_name varchar(100) DEFAULT NULL COMMENT '业户名称', business_id
        
        
      
address varchar(200) DEFAULT NULL COMMENT '所在地址', create_time
        
        
      
owner_id)");

		-- 删除原表数据
		SET @deleteSql = CONCAT("DELETE FROM result where owner_id IN (SELECT owner_id FROM (SELECT owner_id FROM result where DATE_FORMAT(create_date,'%Y%m')=",@loop_table," AND DATE_FORMAT(create_date,'%Y%m%d')<=DATE_FORMAT(DATE_SUB(CURDATE(),INTERVAL 30 DAY),'%Y%m%d') )t1);");
		PREPARE delsql FROM @delSql;
		EXECUTE delsql;
		
		-- 查询现在执行的月份的上个月
		SET @preMonthStr = DATE_SUB(@preMonthStr,INTERVAL 1 MONTH);
		-- 如果循环到今年1月,结束循环
		IF @loop_table = CONCAT(@dateStr,'01') THEN
			LEAVE loop_label;
		END IF;
		
		END LOOP loop_label;



END IF;

END IF; -- 提交事务 COMMIT; END DELIMITER;


 打赏        分享



评论

邮箱: 昵称: