全部產品
Search
文件中心

PolarDB:LIST-HASH

更新時間:Jul 06, 2024

本文檔介紹了建立LIST-HASH分區表的方法。

文法

建立LIST-HASH分區表。一級分區是LIST [COLUMNS]類型,二級分區是HASH/KEY類型。

CREATE TABLE [ schema. ]table_name
 table_definition
   PARTITION BY LIST {(expr) | COLUMNS(column_list)}
   SUBPARTITION BY {[LINEAR] HASH(expr) [SUBPARTITIONS number]
   | [LINEAR] KEY [ALGORITHM={1 | 2}] (column_list)}
   (partition_definition [, partition_definition] ...);

其中,partition_definition為

 PARTITION partition_name
        VALUES IN ( value_list)
        (subpartition_definition [, subpartition_definition] ...)

subpartition_definition為

SUBPARTITION subpartition_name

參數

參數名稱

參數說明

expr

分區欄位運算式,目前只支援INT類型,不支援字元類型。

number

子分區的數量。

column_list

分區欄位列表,不支援運算式。

value_list

多個欄位的邊界值。

partition_name

分區名稱,同一個表中不可重複。

subpartition_name

子分區名稱,同一個表中不可重複。

樣本

LIST-HASH類型的使用樣本:

CREATE TABLE sales_list_hash
(
  dept_no     INT,
  part_no     INT,
  country     varchar(20),
  date        DATE,
  amount      INT
)
PARTITION BY LIST(amount)
SUBPARTITION BY HASH(dept_no) SUBPARTITIONS 2
(
  PARTITION p0 VALUES in (1, 2),
  PARTITION p1 VALUES in (3, 4),
  PARTITION p2 VALUES in (5, 6)
);

LIST COLUMNS-HASH類型的使用樣本:

CREATE TABLE sales_list_columns_hash
(
  dept_no     INT,
  part_no     INT,
  country     varchar(20),
  date        DATE,
  amount      INT
)
PARTITION BY LIST COLUMNS(country)
SUBPARTITION BY HASH(dept_no) SUBPARTITION 2
(
  PARTITION europe VALUES in ('FRANCE', 'ITALY'),
  PARTITION asia VALUES in ('INDIA', 'PAKISTAN'),
  PARTITION americas VALUES in ('US', 'CANADA')
);