更新时间:2025-10-22 GMT+08:00
U0400013:GaussDB KEY 分区不支持指定多列分区键
描述
数据库类型与版本
- 源库类型与版本:MySQL 5.5、5.6、5.7、8.0版本。
- 目标库类型与版本:GaussDB所有版本。
语法示例
在MySQL中,当你使用KEY分区而没有指定分区列时,MySQL会使用表的主键作为分区列,如果表没有主键,MySQL会选择一个唯一索引作为分区列(如果存在唯一索引的话)。在GaussDB中则必须指定KEY分区键或HASH分区键,且不支持指定多列,如下示例在GaussDB中将不支持。
GaussDB 集中式版(B兼容) V2.0-3.2 企业版及以上版本,GaussDB 集中式版(M兼容) V2.0-8.100 企业版及以上版本:
CREATE TABLE partition_by_key_test (
id INT NOT NULL,
name VARCHAR(20),
sid INT NOT NULL,
UNIQUE KEY (id, sid)
) PARTITION BY KEY(id, sid) PARTITIONS 2;
GaussDB 所有版本:
CREATE TABLE partition_by_key_test (
id INT NOT NULL,
name VARCHAR(20),
sid INT NOT NULL,
UNIQUE KEY (id, sid)
) PARTITION BY HASH(id, sid) PARTITIONS 2;
如果MySQL语句中指定了多列KEY分区键,或者没有指定KEY分区键,但是主键或者唯一键均为多列时,UGO无法转换该场景,将生成此错误提示。
改造建议
修改“KEY分区表多列分区键”转换配置项,选择使用主键或唯一键的第一列作为分区键。请注意该修改可能会使表的数据分区与源库不一致。