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

PolarDB:パーティションの作成

最終更新日:Dec 27, 2025

既存のパーティションテーブルに新しいパーティションを追加できます。このトピックでは、構文について説明し、例を示します。

構文

CREATE TABLE [ IF NOT EXISTS ] table_name
    PARTITION OF parent_table [ (
  { column_name [ WITH OPTIONS ] [ column_constraint [ ... ] ]
    | table_constraint }
    [, ... ]
) ] { FOR VALUES partition_bound_spec | DEFAULT }
[ PARTITION BY { RANGE | LIST | HASH } ( { column_name | ( expression ) } [ COLLATE collation ] [ opclass ] [, ... ] ) ]
[ WITH ( storage_parameter [= value] [, ... ] ) | WITHOUT OIDS ]
[ TABLESPACE tablespace_name ]
説明

PolarDB for PostgreSQL は PostgreSQL と完全な互換性があります。パーティションテーブルを作成するための構文の詳細については、PostgreSQL ドキュメントをご参照ください。

  • RANGE/LIST:

    CREATE TABLE [ IF NOT EXISTS ] table_name
        PARTITION OF parent_table [ (
      { column_name [ WITH OPTIONS ] [ column_constraint [ ... ] ]
        | table_constraint }
        [, ... ]
    ) ] { FOR VALUES partition_bound_spec | DEFAULT }
    [ PARTITION BY { RANGE | LIST | HASH } ( { column_name | ( expression ) } [ COLLATE collation ] [ opclass ] [, ... ] ) ]
    [ WITH ( storage_parameter [= value] [, ... ] ) | WITHOUT OIDS ]
    [ TABLESPACE tablespace_name ]
  • HASH:

    ALTER TABLE <table_name> ADD PARTITION <partition_name>;

パーティションの作成

レンジパーティションの作成

CREATE TABLE tab_range_p1 PARTITION OF tab_range FOR VALUES FROM (minvalue) TO (100);

リストパーティションの作成

CREATE TABLE tab_list_p1 PARTITION OF tab_list FOR VALUES IN (10, 20, 30);

ハッシュパーティションの作成

CREATE TABLE tab_hash_0 PARTITION OF tab_hash FOR VALUES WITH (modulus 2, remainder 0);

多階層パーティションの作成

PolarDB for PostgreSQL および では、パーティションをさらにサブパーティションに分割できます。パーティション分割ポリシーを組み合わせて使用できます。

多階層レンジパーティションの作成

CREATE TABLE tab_range_p2 PARTITION OF tab_range FOR VALUES FROM (100) TO (200) PARTITION BY List (value);

多階層リストパーティションの作成

CREATE TABLE tab_list_p2 PARTITION OF tab_list FOR VALUES IN (40, 50, 60) PARTITION BY hash (value);

多階層ハッシュパーティションの作成

CREATE TABLE tab_hash_1 PARTITION OF tab_hash FOR VALUES WITH (modulus 2, remainder 1) PARTITION BY range (value);