文档首页/ 数据库和应用迁移 UGO/ 用户指南/ 语法转换指南/ 转换错误码/ GoldenDB To GaussDB 转换错误码/ U0700001:GaussDB RANGE/LIST分布列的限制和GoldenDB的不一致,GaussDB要求主键或者唯一键必须是分布键的超集
更新时间:2025-06-04 GMT+08:00
分享

U0700001:GaussDB RANGE/LIST分布列的限制和GoldenDB的不一致,GaussDB要求主键或者唯一键必须是分布键的超集

描述

数据库类型与版本

  • 源库类型与版本:GoldenDB 8.0版本。
  • 目标库类型与版本:GaussDB分布式。

语法示例

默认情况下,GoldenDB的RANGE、LIST分区表转换到GaussDB分布式均会生成此错误提示,需要用户检查。

在GaussDB分布式中,如果显式指定了RANGE或者LIST分布的分布键,并且表中同时还存在主键或者唯一键时,则要求主键或者唯一键必须是分布键的超集,如下示例所示,指定的RANGE分布键不是主键列,则不支持。
CREATE TABLE distributed_by_range_demo (
    year_col INT,
    col2 CHAR(5) NOT NULL PRIMARY KEY
) DISTRIBUTE BY RANGE(year_col) (
    SLICE g1 VALUES LESS THAN (1991),
    SLICE g2 VALUES LESS THAN (1995),
    SLICE g3 VALUES LESS THAN (MAXVALUE)
);

而GoldenDB分布键则没有该要求,因此如果源端语句不满足这个特点则必须要进行改造。

改造建议

修改“Range/List分布转换”转换配置项。

相关文档