mysql 将三个月的数据导到历史表_迁移数据到历史表,减少业务表中数据压力 Mysql...
#數(shù)據(jù)遷移存儲(chǔ)過(guò)程
DROP PROCEDURE IF EXISTS `delete_platform_patient`;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `delete_platform_patient`()
BEGIN
declare counts integer;-- 記錄遷移條數(shù)
declare date_former datetime;-- 定義一個(gè)時(shí)間變量用來(lái)存放時(shí)間
declare result_code integer; -- 定義返回結(jié)果并賦初始值
declare CONTINUE HANDLER for SQLEXCEPTION set result_code=1; -- 在執(zhí)行過(guò)程中出現(xiàn)任何異常result_code為1
select date_sub(now(),interval 3 month) into date_former; -- 獲取三個(gè)月前的時(shí)間存入定義的時(shí)間變量中
select count(1) into counts from platform_patient where create_time
start TRANSACTION;-- 進(jìn)行事物處理
insert into platform_patient_historys select * from platform_patient p where p.create_time
delete from platform_patient where create_time
insert into t_yh_move_data_log (time,tablename,count) values(NOW(),'platform_patient',counts);
IF result_code = 1 THEN -- 發(fā)生異常就回滾反之就提交
ROLLBACK;
ELSE
COMMIT;
END IF;
END
;;
DELIMITER ;
#每天定時(shí)觸發(fā)
DROP EVENT
IF EXISTS `delete_platform_patient`;
DELIMITER ;;
CREATE DEFINER = `root`@`%` EVENT `delete_platform_patient` ON SCHEDULE EVERY 1 DAY STARTS '2019-07-30 01:10:00' ON COMPLETION PRESERVE ENABLE DO
CALL delete_platform_patient ();;
DELIMITER ;
#解決事件不起作用
set global event_scheduler = ON;show variables like 'event%';
總結(jié)
以上是生活随笔為你收集整理的mysql 将三个月的数据导到历史表_迁移数据到历史表,减少业务表中数据压力 Mysql...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql 同一张表查询_mysql 同
- 下一篇: mysql linux 中文乱码_解决M