本文介绍了使用一个分区或子分区与单表进行交换的方法。
语法
ALTER TABLE...EXCHANGE PARTITION命令用于将一个分区或子分区与单表进行交换,可以将一个与分区表的表结构相同的单表交换为分区表中的一个分区或子分区。语法如下:
ALTER TABLE target_table
EXCHANGE PARTITION target_partition
WITH TABLE source_table
[{WITH | WITHOUT} VALIDATION];
语法中的参数说明如下:
参数 | 说明 |
target_table | 用于交换的目标表名称。 |
target_partition | 用于交换的目标分区名称。 |
source_table | 用于交换的源表名称。 |
当执行完ALTER TABLE...EXCHANGE PARTITION
命令后,最初在target_partition
中的数据就会交换到source_table
中,而最初在source_table
中的数据则会交换到target_partition
中。
WITHOUT VALIDATION
选项表示不对单表的数据是否符合分区规则做校验,直接进行交换,是INSTANT DDL,且只交换元数据,需要用户保证数据是否符合分区规则。
说明
执行EXCHANGE PARTITION操作时,需要确保source_table
的结构与target_table
的结构一致,即两张表必须有相同的列、数据类型、引擎、表属性以及索引。
使用限制
若分区表或者单表通过INSTANT ADD COLUMN
语句添加过字段,则不能使用EXCHANGE PARTITION语法进行交换。
示例
分区表sales_list
的p0分区与单表sales_list_tmp进行交换:
ALTER TABLE sales_list
EXCHANGE PARTITION p0
WITH TABLE sales_list_tmp;
文档内容是否对您有帮助?