全部产品
Search
文档中心

PolarDB:Tabel partisi LIST-LIST

更新时间:Jul 02, 2025

Topik ini menjelaskan cara membuat tabel partisi LIST-LIST.

Sintaksis

Pernyataan berikut digunakan untuk membuat satu atau lebih tabel partisi LIST-LIST, di mana setiap partisi dapat berisi satu atau lebih subpartisi:

CREATE TABLE [ schema. ]table_name
 table_definition
   PARTITION BY LIST {(expr) | COLUMNS(column_list)}
   SUBPARTITION BY LIST(expr)
   (partition_definition [, partition_definition] ...);

partition_definition adalah:

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

subpartition_definition adalah:

SUBPARTITION subpartition_name
         VALUES IN (value_list)

Parameter

Parameter

Deskripsi

table_name

Nama tabel yang akan dibuat.

expr

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

column_list

Daftar partisi. Digunakan dalam LIST COLUMNS(). Ekspresi tidak didukung.

value_list

Daftar nilai batas partisi. Digunakan dalam LIST COLUMNS().

partition_name

Nama partisi. Nama harus unik dalam tabel.

subpartition_name

Nama subpartisi. Nama harus unik dalam tabel.

Contoh

Buat tabel partisi LIST-LIST:

CREATE TABLE sales_list_list
(
  dept_no     INT,
  part_no     INT,
  country     varchar(20),
  date        DATE,
  amount      INT
)
PARTITION BY LIST (dept_no)
SUBPARTITION BY LIST (part_no)
(
  PARTITION p0 VALUES in (1, 2)(
    SUBPARTITION partno0 VALUES in (1, 2),
    SUBPARTITION partno1 VALUES in (3, 4),
    SUBPARTITION partno2 VALUES in (5, 6)
  ),
  PARTITION p1 VALUES in (3, 4)(
    SUBPARTITION partno3 VALUES in (1, 2),
    SUBPARTITION partno4 VALUES in (3, 4),
    SUBPARTITION partno5 VALUES in (5, 6)
  ),
  PARTITION p2 VALUES in (5, 6)(
    SUBPARTITION partno6 VALUES in (1, 2),
    SUBPARTITION partno7 VALUES in (3, 4),
    SUBPARTITION partno8 VALUES in (5, 6)
  )
);

Buat tabel partisi LIST COLUMNS-LIST:

CREATE TABLE sales_list_columns_list
(
  dept_no     INT,
  part_no     INT,
  country     varchar(20),
  date        DATE,
  amount      INT
)
PARTITION BY LIST COLUMNS(country)
SUBPARTITION BY LIST (dept_no)
(
   PARTITION europe VALUES in ('FRANCE', 'ITALY')(
   	SUBPARTITION p0 VALUES in (1, 2),
    SUBPARTITION p1 VALUES in (3, 4),
    SUBPARTITION p2 VALUES in (5, 6)
   ),
   PARTITION asia VALUES in ('INDIA', 'PAKISTAN')(
   	SUBPARTITION p3 VALUES in (1, 2),
    SUBPARTITION p4 VALUES in (3, 4),
    SUBPARTITION p5 VALUES in (5, 6)
   ),
   PARTITION americas VALUES in ('US', 'CANADA')(
   	SUBPARTITION p6 VALUES in (1, 2),
    SUBPARTITION p7 VALUES in (3, 4),
    SUBPARTITION p8 VALUES in (5, 6)
   )
);