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