全部产品
Search
文档中心

PolarDB:LIST

更新时间:Jul 02, 2025

Tema ini menjelaskan cara membuat tabel terpartisi LIST.

Sintaksis

Pernyataan berikut digunakan untuk membuat satu atau lebih tabel terpartisi LIST. Partisi LIST didasarkan pada nilai yang dienumerasi. Oleh karena itu, Anda harus mengeenumerasi nilai dari kunci partisi untuk setiap partisi. Nilai yang dienumerasi harus unik. Partisi LIST mendukung tipe data ekstensi LIST COLUMNS.

CREATE TABLE ... PARTITION BY LIST {(expr)  COLUMNS(column_list)}
(Definisi_partisi [, definisi_partisi] ...);
definisi_partisi adalah:
PARTITION nama_partisi
    VALUES IN (daftar_nilai)

Parameter

ParameterDeskripsi
exprEkspresi partisi. Harus bertipe INT. Tipe string tidak didukung.
column_listDaftar kolom kunci partisi. Digunakan dalam LIST COLUMNS(). Ekspresi tidak didukung.
value_listNilai batas partisi.
partition_nameNama partisi. Nama tersebut harus unik dalam tabel.

Deskripsi

LIST mendukung ekspresi. Data hasil dari ekspresi LIST harus bertipe INT.

LIST hanya mendukung kunci partisi kolom tunggal.

LIST COLUMNS tidak mendukung ekspresi, tetapi mendukung kolom.

LIST COLUMNS mendukung kunci partisi multi-kolom. LIST COLUMNS mendukung kunci partisi dengan tipe data berikut: INT, tipe string, DATE, dan DATETIME.

Contoh

Buat tabel terpartisi LIST:
CREATE TABLE sales_list
(
  dept_no     INT,
  part_no     INT,
  country     varchar(20),
  date        DATE,
  amount      INT
)
PARTITION BY LIST (amount)
(
  PARTITION p0 VALUES in (1, 2),
  PARTITION p1 VALUES in (3, 4),
  PARTITION p2 VALUES in (5, 6)
);
Buat tabel terpartisi LIST COLUMNS:
CREATE TABLE sales_list_columns
(
  dept_no     INT,
  part_no     INT,
  country     varchar(20),
  date        DATE,
  amount      INT
)
PARTITION BY LIST COLUMNS(country)
(
  PARTITION europe VALUES in ('FRANCE', 'ITALY'),
  PARTITION asia VALUES in ('INDIA', 'PAKISTAN'),
  PARTITION americas VALUES in ('US', 'CANADA')
);