すべてのプロダクト
Search
ドキュメントセンター

PolarDB:パーティーの再編成

最終更新日:May 27, 2024

このトピックでは、テーブルの一部のパーティションまたはすべてのパーティションとそのすべてのサブパーティションをデータ損失なしに再編成する方法について説明します。

構文

ALTER TABLE... REORGANIZE PARTITIONステートメントは、テーブルの一部のパーティションまたはすべてのパーティションとそのすべてのサブパーティションをデータ損失なしに再編成するために使用されます。
ALTER TABLE table_name
    REORGANIZE PARTITION partition_names INTO (partition_definitions) 
partition_definitionsは、
{list_partition | range_partition}
です。
  • list_partitionは次のとおりです。
    
    VALUES IN (value[, value]...)
    (サブパーティション、...) 
  • range_partitionは次のとおりです。
    
    未満の値 (value[, value]...)
    (サブパーティション、...) 
subpartitionは次のとおりです。
{list_subpartition | range_subpartition | hash_partition | key_partition}
  • list_subpartitionは次のとおりです。
    SUBPARTITION [subpartition_name]
    VALUES IN (value[, value]...)
    [TABLESPACE tablespace_name] 
  • range_subpartitionは次のとおりです。
    SUBPARTITION [subpartition_name]
    未満の値 (value[, value]...)
    [TABLESPACE tablespace_name] 
  • hash/key_subpartitionは次のとおりです。
    SUBPARTITION [subpartition_name]
    [TABLESPACE tablespace_name] 

パラメーター

パラメーター説明
table_nameテーブルの名前。
list_partition変更する1つ以上の既存のパーティションの名前リスト。 複数のパーティション名はコンマ (,) で区切ります。
partition_definitions新しいパーティション定義のリスト。 複数のパーティション定義はコンマ (,) で区切ります。
partition_nameパーティションの名前。
説明 パーティション名は、既存のすべてのパーティションおよびサブパーティションの名前とは異なる必要があり、オブジェクト識別子の命名規則に従う必要があります。
subpartition_nameサブパーティションの名前。
説明 サブパーティション名は、既存のすべてのパーティションおよびサブパーティションの名前とは異なる必要があり、オブジェクト識別子の命名規則に従う必要があります。

分割sales_range_rangeテーブルのp_2021パーティションをp_2021_1p_2021_2に分割し、それらをサブパーティション化します:
ALTER table sales_range_range REORGANIZE partition p_2021 into ()
    PARTITION p_2021_1未満の値 (2021)(
    SUBPARTITION q1_2021_1の値は (4) より少なく、
    サブパートq2_2021_1の値が以下 (7) 、
    サブパートq3_2021_1の値は (10) より少なく、
    SUBPARTITION q4_2021_1より少ない値 (13)
  ),
    PARTITION p_2021_2値が2022未満 () (
    SUBPARTITION q1_2021_2の値は (4) より少なく、
    サブパートq2_2021_2の値が以下 (7) 、
    サブパートq3_2021_2の値は (10) より少なく、
    サブパートq4_2021_2の値がより少ない (13)
  )
);
sales_range_hashテーブルのq1_2021パーティションをq1_2021_1q1_2021_2に分割し、それらを分割します:
ALTER table sales_range_hash REORGANIZE partition q1_2021 into ()
    PARTITION q1_2021_1の値は (2) より少ない (
    サブパートs0_1、
    サブパーティーs1_1
  ),
    PARTITION q1_2021_2の値が (4) より少ない (
    サブパートs0_2、
    サブパートs1_2
  )
);
パーティションp0p1、およびp2をパーティションq1q2に再編成:
ALTER TABLE sales_list_hash Reorganize PARTITION p0,p1,p2 into ()
             (1,2) のPARTITION q1値 (
            サブパートs0、
            サブパートs1
        ),
        (3,4) のPARTITION q2値 (
            サブパートs3、
            サブパートs4
        )
);