新建分區是指在已有的分區表上新增一個分區。本文介紹了新建分區的語法及其示例。
語法說明
ALTER TABLE <table_name> ADD PARTITION <partition_definition>;
Where partition_definition is:
{<list_partition> | <range_partition>}
and list_partition is:
PARTITION [<partition_name>]
VALUES (<value>[, <value>]...)
[TABLESPACE <tablespace_name>]
[(<subpartition>, ...)]
and range_partition is:
PARTITION [<partition_name>]
VALUES LESS THAN (<value>[, <value>]...)
[TABLESPACE <tablespace_name>]
[(<subpartition>, ...)]
Where subpartition is:
{<list_subpartition> | <range_subpartition> | <hash_subpartition>}
and list_subpartition is:
SUBPARTITION [<subpartition_name>]
VALUES (<value>[, <value>]...)
[TABLESPACE <tablespace_name>]
and range_subpartition is:
SUBPARTITION [<subpartition_name>]
VALUES LESS THAN (<value>[, <value>]...)
[TABLESPACE <tablespace_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 1);
新建多級分區
PolarDB PostgreSQL版(兼容Oracle)在創建分區時,也可以將分區作為分區表再一次進行分區,不同的分區策略可以自由組合。
新建多級范圍分區
CREATE TABLE tab_range_p1 PARTITION OF tab_range FOR VALUES FROM (minvalue) TO (100) PARTITION BY List (value);
新建多級列表分區
CREATE TABLE tab_list_p1 PARTITION OF tab_list FOR VALUES IN (10, 20, 30) PARTITION BY hash (value);
新建多級哈希分區
CREATE TABLE tab_hash_0 PARTITION OF tab_hash FOR VALUES WITH (modulus 2, remainder 1) PARTITION BY range (value);
文檔內容是否對您有幫助?