本文介紹了使用一個分區或子分區與單表進行交換的方法。
語法
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;
文檔內容是否對您有幫助?