如何定时将mysql中的一张表的数据导入到另一张表中?

时间:2022-04-17 00:41:42
具体要求是这样的
有两张表  历史表  当月表    两张表的表结构完全一致
每月月初将上一个月的表数据导出到历史表  当月表清空  

具体该怎么做呢?

6 个解决方案

#1


服务器定时脚本 月初执行一次
事务导出导入excel
完成以后清空当月表

#2


每月做你可以用 event 或者操作系统的定时任务
移数据可以参考这个( 建一个相同结构的当前表替换在用的当前表,然后把数据写到历史表)
create table _当月表 LIKE 当前表;
rename table 当前表 to _历史表, _当月表 to 当月表;
insert 历史表 select * from _历史表;
drop table _历史表;

#4


这个你可以用mysql的event功能来做。

你可以把具体的操作:insert into 历史表 select * from 实时表 where 上月数据 ,然后delete from 事实表 where上月数据,放到一个存储过程里,然后放到event里调用这个存储过程就行了

#5


当你的两张表数据结构一模一样的话,可以使用   insert into 目标表  select * from 源表   然后删除目标表的数据,最后在用一个定损任务来定时执行就可以了,就是楼上所说的mysql的event  ,感谢楼上所说的event 正好学习下 

#6


-- 历史表:History_Table,当月表: Current_Table;
用mysql的event功能来做:

Create TABLE Current_Table1 LIKE Current_Table;
INSERT INTO History_table SELECT * FROM Current_Table;
DROP TABLE Current_TABLE;
RENAME TABLE Current_Table1 To Current_Table;

#1


服务器定时脚本 月初执行一次
事务导出导入excel
完成以后清空当月表

#2


每月做你可以用 event 或者操作系统的定时任务
移数据可以参考这个( 建一个相同结构的当前表替换在用的当前表,然后把数据写到历史表)
create table _当月表 LIKE 当前表;
rename table 当前表 to _历史表, _当月表 to 当月表;
insert 历史表 select * from _历史表;
drop table _历史表;

#3


#4


这个你可以用mysql的event功能来做。

你可以把具体的操作:insert into 历史表 select * from 实时表 where 上月数据 ,然后delete from 事实表 where上月数据,放到一个存储过程里,然后放到event里调用这个存储过程就行了

#5


当你的两张表数据结构一模一样的话,可以使用   insert into 目标表  select * from 源表   然后删除目标表的数据,最后在用一个定损任务来定时执行就可以了,就是楼上所说的mysql的event  ,感谢楼上所说的event 正好学习下 

#6


-- 历史表:History_Table,当月表: Current_Table;
用mysql的event功能来做:

Create TABLE Current_Table1 LIKE Current_Table;
INSERT INTO History_table SELECT * FROM Current_Table;
DROP TABLE Current_TABLE;
RENAME TABLE Current_Table1 To Current_Table;