本文介紹了使用一個分區或子分區與單表進行交換的方法。
文法
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;