全部产品
Search
文档中心

PolarDB:HASH-RANGE

更新时间:Jul 02, 2025

Topik ini menjelaskan cara membuat tabel partisi hash-range.

Sintaksis

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

CREATE TABLE [ schema. ]table_name
 table_definition
   PARTITION BY [LINEAR] HASH(expr)
   SUBPARTITION BY RANGE (expr)
   (partition_definition [, partition_definition] ...)

partition_definition adalah:

 PARTITION partition_name
        (subpartition_definition [, subpartition_definition] ...)

subpartition_definition adalah:

SUBPARTITION subpartition_name
             VALUES LESS THAN {value | MAXVALUE}

Parameter

Parameter

Deskripsi

table_name

Nama tabel.

expr

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

value

Nilai batas partisi.

MAXVALUE

Nilai maksimum partisi.

partition_name

Nama partisi. Nama harus unik dalam tabel.

subpartition_name

Nama subpartisi. Nama harus unik dalam tabel.

Contoh

Buat tabel partisi hash-range:

CREATE TABLE sales_hash_range
(
  dept_no     INT,
  part_no     INT,
  country     varchar(20),
  date        DATE,
  amount      INT
)
PARTITION BY HASH(dept_no)
SUBPARTITION BY RANGE(part_no)
(
PARTITION p0 (
    SUBPARTITION s0 VALUES LESS THAN(4),
    SUBPARTITION s1 VALUES LESS THAN(7),
    SUBPARTITION s2 VALUES LESS THAN(10),
    SUBPARTITION s3 VALUES LESS THAN(13)
  ),
  PARTITION p1
  (
    SUBPARTITION s4 VALUES LESS THAN(4),
    SUBPARTITION s5 VALUES LESS THAN(7),
    SUBPARTITION s6 VALUES LESS THAN(10),
    SUBPARTITION s7 VALUES LESS THAN(13)
  ),
  PARTITION p2
  (
    SUBPARTITION s8 VALUES LESS THAN(4),
    SUBPARTITION s9 VALUES LESS THAN(7),
    SUBPARTITION s10 VALUES LESS THAN(10),
    SUBPARTITION s11 VALUES LESS THAN(13)
  )
);