全部产品
Search
文档中心

PolarDB:LIST-HASH

更新时间:Jul 02, 2025

Topik ini menjelaskan cara membuat tabel terpartisi LIST-HASH.

Sintaksis

Pernyataan berikut digunakan untuk membuat satu atau lebih tabel terpartisi LIST-HASH. Partisi bertipe LIST [COLUMNS], dan subpartisi bertipe HASH atau 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] ...);

Definisi partisi adalah:

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

Definisi partisi adalah:

SUBPARTITION subpartition_name

Parameter

Parameter

Deskripsi

expr

Ekspresi partisi. Harus bertipe INT. Tipe string tidak didukung.

number

Jumlah subpartisi.

column_list

Daftar kolom kunci partisi. Ekspresi tidak didukung.

value_list

Daftar nilai batas partisi.

partition_name

Nama partisi. Nama harus unik dalam tabel.

subpartition_name

Nama subpartisi. Nama harus unik dalam tabel.

Contoh

Buat tabel terpartisi 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)
);

Buat tabel terpartisi 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')
);