Navicat mysql 从一张表往另外一张表定时插入数据

首先创建一个函数
Navicat mysql 从一张表往另外一张表定时插入数据
CREATE DEFINER=root@% PROCEDURE mypro()
begin
INSERT INTO t_group_bbsj_hour(ACC_AVG_XA,ACC_AVG_ZR,ACC_VP_XA,ACC_VP_ZR,Per,Run,SFT_VP_XA,Temp,Vol,CJSJ,CODE) SELECT ACC_AVG_XA,ACC_AVG_ZR,ACC_VP_XA,ACC_VP_ZR,Per,Run,SFT_VP_XA,Temp,Vol,CJSJ,CODE from (SELECT ACC_AVG_XA,ACC_AVG_ZR,ACC_VP_XA,ACC_VP_ZR,Per,Run,SFT_VP_XA,Temp,Vol,CJSJ,CODE from t_group_bbsj order by cjsj DESC limit 10000) a GROUP BY code;
END

这里是从t_group_bbsj表中取数据,每隔一小时往t_group_bbsj_hour表中插入每个设备的最新1条数据(原来的t_group_bbsj表中的数据是一分钟一条,t_group_bbsj_hour相当于稀释了数据,每一小时一条)
至于一小时一条是怎么控制的,往下看
再创建一个事件,相隔时间选择一小时即可。
Navicat mysql 从一张表往另外一张表定时插入数据
Navicat mysql 从一张表往另外一张表定时插入数据
然后启动
SET GLOBAL event_scheduler = 1; – 启动定时器
ALTER EVENT eventJob ON COMPLETION PRESERVE ENABLE; – 开启事件

如有修改先关闭再启动
SET GLOBAL event_scheduler = 0; – 停止定时器
ALTER EVENT eventJob ON COMPLETION PRESERVE DISABLE; – 关闭事件