全部產品
Search
文件中心

PolarDB:RANGE

更新時間:Jul 06, 2024

本文檔介紹了建立RANGE分區表的方法。

文法

建立RANGE分區表。按照範圍邊界分區,常用於按照時間邊界進行分區。分區邊界必須是遞增的。

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

其中,partition_definition為

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

參數

參數名稱

參數說明

expr

分區欄位運算式,目前只支援INT類型,不支援字元類型。

column_list

分區欄位列表,不支援運算式。

value

分區邊界值。

value_list

RANGE COLUMNS的情況下使用,多個欄位的邊界值。

MAXVALUE

最大值。

partition_name

分區名稱,同一個表中不可重複。

描述

RANGE分區支援單列分區鍵。

RANGE分區支援運算式。

RANGE分區支援擴充類型RANGE COLUMNS。

  • RANGE COLUMNS不支援運算式,但支援列;

  • RANGE COLUMNS支援多列分區鍵;

  • RANGE COLUMNS支援多種類型的分區鍵,包括INT類型、字元類型、DATE類型、DATETIME等類型。

樣本

RANGE類型的使用樣本:

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

RANGE COLUMNS類型的使用樣本:

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