PolarDB for PostgreSQL (Kompatibel dengan Oracle) menyediakan sintaksis sederhana untuk membuat tabel yang dipartisi menggunakan hash, di mana jumlah partisi telah ditentukan.
Buat partisi hash
Sintaksis:
CREATE TABLE ... PARTITION BY HASH (part_params) PARTITIONS number ;Tabel berikut menjelaskan parameter yang digunakan dalam sintaksis:
| Parameter | Deskripsi |
| part_params | Bidang partisi. |
| number | Jumlah partisi hash. |
Contoh berikut menunjukkan pernyataan yang sesuai:
CREATE TABLE part_hash (deptno NUMBER, deptname VARCHAR(32))
PARTITION BY HASH(deptno) PARTITIONS 4;Buat subpartisi hash
Sintaksis:
CREATE TABLE ... PARTITION BY part_strategy ( part_params ) SUBPARTITION BY HASH ( part_params) SUBPARTITIONS number ( table_partitions_list );Tabel berikut menjelaskan parameter yang digunakan dalam sintaksis:
| Parameter | Deskripsi |
| part_strategy | Tipe tabel partisi. Tipe berikut didukung:
|
| part_params | Bidang partisi. |
| table_partitions_list | Daftar definisi partisi. |
| number | Jumlah subpartisi hash. |
- Tipe partisi adalah RANGE dan tipe subpartisi adalah HASH. Contoh berikut menunjukkan pernyataan yang sesuai:
CREATE TABLE part_test ( prod_id NUMBER(6), cust_id NUMBER, time_id DATE, channel_id CHAR(1), promo_id NUMBER(6), quantity_sold NUMBER(3), amount_sold NUMBER(10,2) ) PARTITION BY RANGE (time_id) SUBPARTITION BY HASH (cust_id) SUBPARTITIONS 4 ( PARTITION sales_q1_2006 VALUES LESS THAN (TO_DATE('01-APR-2006','dd-MON-yyyy'))( SUBPARTITION q1_europe, SUBPARTITION q1_asia , SUBPARTITION q1_americas ), PARTITION sales_q2_2006 VALUES LESS THAN (TO_DATE('01-JUL-2006','dd-MON-yyyy')), PARTITION sales_q3_2006 VALUES LESS THAN (TO_DATE('01-OCT-2006','dd-MON-yyyy')), PARTITION sales_q4_2006 VALUES LESS THAN (TO_DATE('01-JAN-2007','dd-MON-yyyy')) ); - Kedua tipe partisi dan subpartisi adalah HASH. Contoh berikut menunjukkan pernyataan yang sesuai:
CREATE TABLE part_test ( prod_id NUMBER(6), cust_id NUMBER, time_id DATE, channel_id CHAR(1), promo_id NUMBER(6), quantity_sold NUMBER(3), amount_sold NUMBER(10,2) ) PARTITION BY HASH (prod_id) SUBPARTITION BY HASH (cust_id) PARTITIONS 4 SUBPARTITIONS 4;