更新时间: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分区表多列分区键”转换配置项,选择使用主键或唯一键的第一列作为分区键。请注意该修改可能会使表的数据分区与源库不一致。