更新时间:2025-06-04 GMT+08:00

U0400025:GaussDB 不支持 SET 数据类型

描述

数据库类型与版本

  • 源库类型与版本:MySQL 5.5、5.6、5.7、8.0版本。
  • 目标库类型与版本:GaussDB 集中式版 B 兼容模式 V2.0-3.1 及之前版本,M 兼容模式 V2.0-8.100 版本,GaussDB 分布式版。

语法示例

如下示例建表语句中使用了 SET 数据类型,当选择了上述不支持 SET 数据类型版本的 GaussDB 时,UGO 将提示此错误。

CREATE TABLE set_test (
    id int NOT NULL PRIMARY KEY,
    set_test set('A', 'B', 'C') DEFAULT NULL
);

改造建议

修改“set数据类型转换”转换配置项,可以选择将SET类型转换为VARCHAR类型,并可以选择是否添加触发器来实现数据校验。请注意,不添加触发器的情况下需要业务端保证数据完整性约束;添加触发器的情况下可能会影响使用性能,并提升数据库系统的维护难度,需要您充分评估业务影响。

请注意,默认情况下,上述示例在MySQL中,允许set_test字段的值为小写'a', 'b', 'c'以及空串,这在GaussDB B兼容模式中是不允许的,M兼容模式和MySQL一致。大小写是否敏感与数据库大小写默认行为有关,详情请参考U0400023