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)
)
);