全部产品
Search
文档中心

PolarDB:CREATE TABLE ... PARTITION BY HASH

更新时间:Jul 02, 2025

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:

ParameterDeskripsi
part_paramsBidang partisi.
numberJumlah 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:

ParameterDeskripsi
part_strategyTipe tabel partisi. Tipe berikut didukung:
  • RANGE
  • LIST
  • HASH
part_paramsBidang partisi.
table_partitions_listDaftar definisi partisi.
numberJumlah 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;

Dokumentasi terkait

CREATE TABLE... PARTITION BY