全部产品
Search
文档中心

PolarDB:RANGE

更新时间:Jul 02, 2025

Topik ini menjelaskan cara membuat tabel yang dipartisi berdasarkan rentang.

Sintaksis

Pernyataan berikut digunakan untuk membuat satu atau lebih tabel yang dipartisi berdasarkan rentang. Data dipartisi berdasarkan batas rentang, sering kali menggunakan batas waktu. Batas partisi harus bertambah.

CREATE TABLE ... PARTITION BY RANGE {(expr)  COLUMNS(column_list)}
(partition_definition [, partition_definition] ...);

Definisi partisi adalah:

PARTITION partition_name
       VALUES LESS THAN {(value  value_list)  MAXVALUE}

Parameter

Parameter

Deskripsi

expr

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

column_list

Daftar kolom kunci partisi. Ekspresi tidak didukung.

value

Nilai batas partisi.

value_list

Daftar nilai batas partisi. Digunakan dalam RANGE COLUMNS().

MAXVALUE

Nilai maksimum partisi.

partition_name

Nama partisi. Nama harus unik di dalam tabel.

Deskripsi

Partisi rentang mendukung kunci partisi kolom tunggal.

Partisi rentang mendukung ekspresi.

Partisi rentang mendukung tipe data ekstensi RANGE COLUMNS.

  • RANGE COLUMNS tidak mendukung ekspresi, tetapi mendukung kolom.

  • RANGE COLUMNS mendukung kunci partisi multi-kolom.

  • RANGE COLUMNS mendukung kunci partisi dengan tipe data berikut: INT, tipe string, DATE, dan DATETIME.

Contoh

Buat tabel yang dipartisi berdasarkan rentang:

CREATE TABLE sales_range
(
  dept_no     INT,
  part_no     INT,
  country     varchar(20),
  date        DATE,
  amount      INT
)
PARTITION BY RANGE(amount)
(
  PARTITION p0 VALUES LESS THAN(1000),
  PARTITION p1 VALUES LESS THAN(2000),
  PARTITION p2 VALUES LESS THAN(3000),
  PARTITION p3 VALUES LESS THAN(MAXVALUE)
);

Buat tabel yang dipartisi berdasarkan kolom rentang:

CREATE TABLE sales_range_columns
(
  dept_no     INT,
  part_no     INT,
  country     varchar(20),
  create_date        DATE,
  amount      INT
)
PARTITION BY RANGE COLUMNS(create_date)
(
  PARTITION p1 VALUES LESS THAN('2023-01-01'),
  PARTITION p2 VALUES LESS THAN('2023-02-01'),
  PARTITION p3 VALUES LESS THAN('2023-03-01'),
  PARTITION p4 VALUES LESS THAN('2023-04-01')
);

CREATE TABLE sales_range_columns
(
  dept_no     INT,
  part_no     INT,
  country     varchar(20),
  date        DATE,
  amount      INT
)
PARTITION BY RANGE COLUMNS(dept_no, part_no)
(
  PARTITION p1 VALUES LESS THAN(1000, MAXVALUE),
  PARTITION p2 VALUES LESS THAN(2000, MAXVALUE),
  PARTITION p3 VALUES LESS THAN(3000, MAXVALUE),
  PARTITION p4 VALUES LESS THAN(4000, MAXVALUE)
);