このトピックでは、EXCHANGE PARTITIONを使用して、パーティションテーブルのパーティションまたはサブパーティションを非パーティションテーブルと交換する方法について説明します。
構文
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が指定されている場合、ALTER TABLE... 「INSTANT DDL」操作と同様に、パーティションを非パーティションテーブルと交換するとき、EXCHANGE PARTITION操作は行ごとの検証を実行しません。 これにより、データベース管理者は、行がパーティション定義の境界内にあることを確認する責任を負うことができます。
EXCHANGE PARTITION操作を実行するときは、source_tableとtarget_tableの構造、列、データ型、エンジン、テーブル属性、およびインデックスが同じであることを確認してください。
制限事項
INSTANT ADD COLUMNステートメントを使用してパーティションテーブルまたは非パーティションテーブルにフィールドを追加した場合、交換にはEXCHANGE partition構文を使用できません。
性能テスト
sales_listのp0をsales_list_tmpと交換します。
ALTER TABLE sales_list
交換パーティーp0
WITH TABLE sales_list_tmp;