1、如果两个分区表的表结构相同, 新建分区表t2, 表结构与t1 一致(字段,索引相同), 包含分区p0,p1;
可以如下操作:
1)创建一个表结构相同的单表temp,
2)单表temp 与分区表t1 的历史分区exchange partition; 这样历史分区的数据就会换入到单表;
ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE temp;
或者
ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE temp WITHOUT VALIDATION;
3)带有历史数据的单表temp与新分区表t2的目的分区p0 exchange partition, 这样就会把数据换入到新分区表。
ALTER TABLE t2 EXCHANGE PARTITION p0 WITH TABLE temp;
或者
ALTER TABLE t2 EXCHANGE PARTITION p0 WITH TABLE temp WITHOUT VALIDATION;
4)drop 单表。
如果可以确定两个分区表需要交换的分区的数据范围是一样的,可以在exchange partition时带without validation的选项,执行会很快。
5),后续如果还有分区由t1持续转到t2, 可以在t2表ADD PARTITION添加新的空分区,然后按照上述步骤操作。
2、如果两个分区表的表结构不同,数据不一样,可以使用insert select 语法选择需要的数据插入到另外一张表。