大数据-玩转数据-mysql定时转移半年前表数据存过

一、建立存储过程

临时将半年前的数据备份到历史数据表

CREATE  PROCEDURE `proc_backupdata_his`()
BEGIN
		 INSERT INTO MCM_BASE.STATISTIC_HOST_HIS
					 SELECT * FROM  MCM_BASE.STATISTIC_HOST T 
				   WHERE date_format(T.STATISTIC_TIME,'%Y-%m-%d') <= date_format(DATE_SUB(curdate(), INTERVAL 6 MONTH),'%Y-%m-%d')
					 AND NOT EXISTS (SELECT 1 FROM  MCM_BASE.STATISTIC_HOST_HIS B WHERE T.ID=B.ID);
		 COMMIT;
		 DELETE FROM MCM_BASE.STATISTIC_HOST T
				   WHERE date_format(T.STATISTIC_TIME,'%Y-%m-%d') <= date_format(DATE_SUB(curdate(), INTERVAL 6 MONTH),'%Y-%m-%d')
				   AND EXISTS (SELECT 1 FROM MCM_BASE.STATISTIC_HOST_HIS B WHERE B.ID = T.ID);
		 COMMIT;	
END

二、建立定时任务

显示定时任务并设置,查看定时策略

show variables like '%event_sche%';
set global event_scheduler=1;

设置定时任务开始(如果策略显示ON,则不需要执行)

set global event_scheduler=1;

设置mysql 重启有效,所以需要写入配置文件中

 [mysqld]
event_scheduler=ON //这一行加入mysqld标签下

创建mysql定时任务

create event proc_backupdata_his
ON SCHEDULE EVERY 1 day STARTS '2023-04-15 00:00:05' 
ON COMPLETION NOT PRESERVE ENABLE 
DO CALL proc_backupdata_his();

查看定时任务

SELECT event_name,event_definition,interval_value,interval_field,status FROM information_schema.EVENTS;

开启 或 关闭 指定的定时任务 second_event 为定时任务名称

alter event second_event on completion preserve enable;//开启定时任务
alter event second_event on completion preserve disable;//关闭定时任务

删除事件 或者 停止事件 status 为事件名字

# 停止事件
ALTER EVENT status DISABLE
# 删除事件
DROP EVENT status
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值