【TiDB 版本】:
3.0.5
【问题描述】:
https://pingcap.com/docs-cn/stable/reference/sql/partitioning/#分区键主键和唯一键
根据官方文档中所提到的 分区表的每个唯一键,必须包含分区表达式中用到的所有列。
的限制
下面这个表就没法做分区了,因为无论如何都不可能找到满足条件的分区键:
CREATE TABLE t4 (
col1 INT NOT NULL,
col2 INT NOT NULL,
col3 INT NOT NULL,
col4 INT NOT NULL,
PRIMARY KEY (col1),
UNIQUE KEY (col2, col3, col4)
);
如果要满足这个限制的条件,我必须要重新设计我的数据表,例如我要根据 col2 列进行表分区:
CREATE TABLE t4 (
col1 INT NOT NULL,
col2 INT NOT NULL,
col3 INT NOT NULL,
col4 INT NOT NULL,
PRIMARY KEY (col1, col2),
UNIQUE KEY (col2, col3, col4)
);