文法
枚舉類型分區,需要枚舉出每個分區的分區鍵的值,枚舉值不能重複,並支援使用DEFAULT值定義"catch-all" 分區。
CREATE TABLE ...
PARTITION BY LIST COLUMNS(partition_column_list) [PARTITIONS number]
(
PARTITION part_name VALUES IN (list_bound_value_se),
PARTITION part_name VALUES IN (list_bound_value_set),
...
)
partition_column_list:
partition_column[, partition_column, partition_column, ...]
list_bound_value_set:
list_bound_value[, list_bound_value, list_bound_value, ...]
說明
LIST分區策略與LIST COLUMNS分區策略的區別請參見List Columns分區策略與List分區策略對比。
限制
List Columns分區不允許使用分區函數。
預設最大分區數目不允許超過8192。
預設最大分區列數目不允許超過5個。
所有分區的名字不能重複,長度預設不超過16個字元。
使用TIMESTAMP等時區敏感的資料類型作為分區列時,該分區列必須配套地使用UNIX_TIMESTAMP分區函數。
樣本
使用向量分區鍵birthday、id按列表分區。
CREATE TABLE tb_lc(
id bigint not null auto_increment,
bid int,
name varchar(30),
birthday datetime not null,
primary key(id)
)
PARTITION BY LIST COLUMNS(birthday, id)
(
PARTITION p1 VALUES IN (('2020-01-01', 1000),('2020-01-01', 2000)),
PARTITION p2 VALUES IN (('2021-01-01', 1000),('2021-01-01', 2000)),
PARTITION p3 VALUES IN (('2022-01-01', 1000),('2022-01-01', 2000)),
PARTITION pm VALUES IN (DEFAULT)
)
資料類型限制
整數類型: BIGINT/BIGINT UNSINGEDINT/INT/INT UNSINGED/MEDIUMINT/MEDIUMINT UNSINGED/SMALLINT/SMALLINT UNSINGED/TINYINT/TINYINT UNSINGED
時間類型:DATETIME/DATE/TIMESTAMP
字串類型:CHAR/VARCHR
定點類型:DECIMAL(小數部分的位元要求必須是0)