更新时间:2025-06-04 GMT+08:00
U0400013:GaussDB HASH分区不支持指定多列分区键
描述
数据库类型与版本
- 源库类型与版本:MySQL 5.5、5.6、5.7、8.0版本。
- 目标库类型与版本:GaussDB所有版本。
语法示例
在MySQL中,当你使用KEY分区而没有指定分区列时,MySQL会使用表的主键作为分区列,如果表没有主键,MySQL会选择一个唯一索引作为分区列(如果存在唯一索引的话)。在GaussDB中则必须指定HASH分区键,且不支持指定多列,如下示例在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无法转换该场景,将生成此错误提示。
改造建议
修改“HASH分区表多列分区键”转换配置项,选择使用主键或唯一键的第一列作为分区键。请注意该修改可能会使表的数据分区与源库不一致。