MySQL To GaussDB配置项使用说明
问题描述 |
配置建议 |
建议值 |
---|---|---|
GaussDB 3.2 企业版开始支持指定表的字符集 |
建议配置 “字符集” 解决该类问题 |
注释CHARSET。 |
GaussDB 3.2 企业版开始支持指定表的排序规则 |
建议配置 “排序规则” 解决该类问题 |
注释COLLATE。 |
GaussDB不支持视图的SECURITY子句 |
建议配置 “SQL SECURITY子句” 解决该类问题 |
迁移SECURITY子句。 |
GaussDB不支持视图的CHECK OPTION子句 |
建议配置 “视图检查选项” 解决该类问题 |
迁移CHECK OPTION。 |
GaussDB TINYINT类型与MySQL类型范围有差异 |
建议配置 “TINYINT类型转换” 解决该类问题
说明:
仅GaussDB 8.0之前版本有此配置。 |
转换TINYINT类型。 |
GaussDB不支持MEDIUMINT类型,也不支持给整数类型指定显示宽度和SIGNED关键字 |
建议配置 “有符号整数类型转换” 解决该类问题
说明:
仅GaussDB 8.0之前版本有此配置。 |
类型保持不变(MEDIUMINT特殊转换成INTEGER),注释宽度以及SIGNED关键字 |
GaussDB不支持无符号整数类型 |
建议配置 “无符号整数类型转换” 解决该类问题
说明:
仅GaussDB 8.0之前版本有此配置。 |
类型转换(SMALLINT、MEDIUMINT转换成INTEGER,INT/INTEGER转换成BIGINT,BIGINT转换成:NUMERIC(20)) |
GaussDB FLOAT类型与MySQL有差异 |
建议配置 “FLOAT类型转换” 解决该类问题 |
类型转换为FLOAT4,注释掉精度和标度,注释掉符号和填充关键字(UNSIGNED、SIGNED、ZEROFILL) |
GaussDB DOUBLE类型与MySQL有差异 |
建议配置 “DOUBLE类型转换” 解决该类问题
说明:
仅GaussDB 8.0之前版本有此配置。 |
类型转换为DOUBLE PRECISION,注释掉精度和标度,注释掉符号和填充关键字(UNSIGNED、SIGNED、ZEROFILL) |
GaussDB TEXT类型与MySQL有差异 |
建议配置 “TEXT数据类型转换” 解决该类问题
说明:
仅GaussDB 8.0之前版本有此配置。 |
不转换,保留TEXT数据类型,并注释长度 |
GaussDB建表语句不支持LONGTEXT数据类型 |
建议配置 “长文本类型转换” 解决该类问题
说明:
仅GaussDB 8.0之前版本有此配置。 |
迁移脚本,将LONGTEXT类型转换为CLOB类型,出现警告消息。 |
GaussDB建表语句不支持LONGBLOB数据类型 |
建议配置 “LONGBLOB类型转换” 解决该类问题 |
迁移脚本,将LONGBLOB类型转换为BYTEA类型。 |
GaussDB建表语句不支持REAL数据类型 |
建议配置 “REAL类型转换” 解决该类问题
说明:
仅GaussDB 8.0之前版本有此配置。 |
将REAL数据类型转换为DOUBLE PRECISION类型。 |
GaussDB列定义不支持on update选项 |
建议配置“表列定义on update选项”解决该类问题 |
注释on update选项。 |
GaussDB分布式不支持生成列 |
建议配置“表生成列”解决该类问题
说明:
仅分布式有此特性。 |
注释生成列表达式,生成列变成普通列。并通过触发器给该列设置值。 |
GaussDB不支持分区键不支持多个键 |
建议配置“分区表多列分区键”解决该类问题 |
使用主键或唯一键的第一列作为分区键。 |
GaussDB不支持分区键和子分区键相同 |
建议配置“子分区和父分区分区键相同”解决该类问题 |
注释子分区。 |
GaussDB临时表不支持自增列 |
建议配置“临时表自增列”解决该类问题 |
注释自增选项。 |
GaussDB分布式不支持外键约束 |
建议配置“外键约束”解决该类问题
说明:
仅分布式有此特性。 |
注释外键约束。 |
GaussDB字符集长度定义与MySQL存在差异 |
建议配置“字符集长度转换”解决该类问题
说明:
仅GaussDB 8.0之前版本有此配置。 |
注释数据类型长度或扩展字符数据类型长度。 |
GaussDB分布式中分布键应为约束的一部分 |
建议配置“分布式环境的唯一约束和索引”解决该类问题
说明:
仅GaussDB 分布式版-2.7 企业版有此特性。 |
如果唯一约束和唯一索引中不存在分布键,需要加分布键。 |
GaussDB不支持数据库对象中使用Definer |
建议配置“对象定义者”解决该类问题 |
如果创建对象时指定用户,将转换为ALTER OWNER。 |
部分数据类型经UGO转换后范围变大 |
建议配置“数据类型check约束”解决该类问题 |
添加check约束。 |
GaussDB与MySQL中BLOB数据类型使用存在差异 |
建议配置“二进制类型BLOB转换”解决该类问题
说明:
仅GaussDB 8.0之前版本有此配置。 |
迁移脚本,将BLOB类型转换为BYTEA类型。 |
GaussDB 不支持某些MySQL的系统权限,系统权限授予失败。 |
建议配置“系统权限”解决该类问题 |
注释整个SQL脚本。 |
GaussDB不支持无符号浮点数和定点数 |
建议配置“无符号浮点和定点类型转换”
说明:
仅GaussDB 8.0版本有此配置。 |
注释UNSIGNED、ZEROFILL属性。 |
GaussDB不支持ZEROFILL关键字 |
建议配置“ZEROFILL关键字转换”
说明:
仅GaussDB 8.0版本有此配置。 |
注释ZEROFILL关键字,且如果原来没有UNSIGNED则添加UNSIGNED关键字。 |
GaussDB2.0版本不支持临时表自增列 |
建议配置“临时表自增列” |
建议注释自增选项 |
增加MySQL到GaussDB存储过程和函数转化后语句的扩展性 |
建议配置“存储过程或者函数添加 ‘or replace’”。 |
创建函数或者存储过程create关键字后不添加“or replace”关键字。 |
GaussDB 不允许未被双引号引用的保留关键字作为对象名称。
说明:
GaussDB 8.100版本支持使用反引号引用对象名称。 |
建议配置“含有保留关键字符的对象名称大小写转换”解决该类问题。
说明:
优先级高于配置“对象名称大小写转换”。 |
如果对象名称中含有保留关键字,将该名称转换为大写字母。 |
GaussDB 保留对象名称大小写需要使用双引号引用对象名称,MySQL 数据库名称、表名称、表别名和视图名称支持大小写敏感。
说明:
GaussDB 8.100版本支持使用反引号引用对象名称。 |
建议配置 “对象名称大小写转换” 解决该类问题。
说明:
优先级低于配置 "含有保留关键字符的对象名称大小写转换"。 |
对象名称全部转换为小写。 |
创建索引过程不阻塞DML操作 |
建议配置:“CREATE INDEX的CONCURRENTLY子句”解决该类问题 |
建议值:如果业务非常需要这个功能,建议选择添加CONCURRENTLY关键字选项。 影响:创建这类索引时候,容易造成死锁,同时对Astore的表索引的创建比正常更长。 |
GaussDB中JSON类型可用于存储JSON数据,对输入的字符串的完整拷贝,不会去重,不会排序。 |
配置建议:"json数据类型转换"解决该类问题。 |
建议值:选择转为JSONB配置项。 |
GaussDB 8.0之前版本CHAR类型是定长字符串,不足补空格,与MySQL不同。 |
配置建议:"char_conversion_support"解决该类问题。 |
建议值:选择转为转为NVARCHAR2配置项。 影响:定长字符串改为变长字符串,与原来存在轻微区别。 |