检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
字段设计 选择数据类型 在字段设计时,基于查询效率的考虑,一般遵循以下原则: 【建议】尽量使用高效数据类型。 选择数值类型时,在满足业务精度的情况下,选择数据类型的优先级从高到低依次为整数、浮点数、NUMERIC。 【建议】当多个表存在逻辑关系时,表示同一含义的字段应该使用相同的数据类型。
字段设计 选择数据类型 在字段设计时,基于查询效率的考虑,一般需要遵循以下原则: 尽量使用高效数据类型。 选择数值类型时,在满足业务精度的情况下,选择数据类型的优先级从高到低依次为整数、浮点数、NUMERIC。 当多个表存在逻辑关系时,表示同一含义的字段应该使用相同的数据类型。
GaussDB数据库支持指定数据库、模式、表或列的字符集,支持的范围如下。 表1 字符集列表 序号 MySQL数据库 GaussDB数据库 1 utf8mb4 支持 2 gbk 支持 3 gb18030 支持 父主题: MySQL数据库兼容MySQL模式
MySQL数据库兼容性概述 本章节主要介绍GaussDB数据库的M-Compatibility兼容模式与MySQL5.7数据库的兼容性对比信息。仅介绍505.1版本后新增的兼容性特性,特性的相关规格和约束建议在开发指南中查看。 为了适配MySQL语句及pymysql、JDBC等多
字段设计 选择数据类型 在字段设计时,基于查询效率的考虑,一般遵循以下原则: 【建议】尽量使用高效数据类型。 选择数值类型时,在满足业务精度的情况下,选择数据类型的优先级从高到低依次为整数、浮点数、NUMERIC。 【建议】当多个表存在逻辑关系时,表示同一含义的字段应该使用相同的数据类型。
型转换。 MySQL数据库支持任意两种数据类型之间做转换。 由于存在以上差异,基于MySQL数据库的应用程序向GaussDB数据库迁移时,SQL语句可能由于不支持不同数据类型之间的转换而报错。或者支持转换的场景下,转换的规则有差异导致SQL语句执行的结果不同。 推荐的做法是:SQ
强制转换函数列表 序号 MySQL数据库 GaussDB数据库 差异 1 CAST() 支持 数据类型转换规则和支持的转换类型均以GaussDB支持的转换范围和规则为准。 2 CONVERT() 支持 数据类型转换规则和支持的转换类型均以GaussDB支持的转换范围和规则为准。 父主题:
GaussDB的按精度输出的时间值(小数点后的值)是四舍五入的;MySQL是直接截断的。GaussDB按精度输出的时间值(小数点后的值)末尾0都不显示;MySQL会显示。GaussDB只支持输入[0,6]范围内的整型值,作为返回时间的精度,其他均报错;MySQL的精度值有效值是[0
服务器时区的时间。MySQL不支持(5.7版本不支持,8.0及之后的版本支持)。 GaussDB的datetime数据类型的表字段实际上会被转换为timestamp(p) without time zone类型,查询表信息或者使用工具导出的表结构,其字段的数据类型显示的是timestamp(p)
加密函数 表1 加密函数列表 序号 MySQL数据库 GaussDB数据库 差异 1 AES_DECRYPT() 支持 - 2 AES_ENCRYPT() 支持 - 父主题: 系统函数
线后跟部分数字也会引起差异,如“\563”。由转义字符引起的本函数与MySQL的差异,此为Gauss与MySQL的转义字符差异。 str字符串中的“\b”,输出结果表现形式与MySQL有差异。此为Gauss与MySQL的固有差异 str字符串中含有“\0”时,GaussDB由于U
其他函数 表1 其他函数列表 序号 MySQL数据库 GaussDB数据库 差异 1 UUID() 支持 - 2 UUID_SHORT() 支持 - 父主题: 系统函数
数字操作函数列表 序号 MySQL数据库 GaussDB数据库 差异 1 log2() 支持 小数位显示与MySQL存在差异,受GaussDB浮点数据类型限制,可通过参数extra_float_digits控制小数位个数显示。 由于输入精度内部处理差异,GaussDB与MySQL会存在结果计算差异。
JDBC JDBC接口参考 父主题: 驱动
JSON数据类型 表1 JSON数据类型 序号 MySQL数据库 GaussDB数据库 1 JSON 不完全兼容 父主题: 数据类型
DCL 序号 概述 详细语法说明 差异 1 SET NAMES指定COLLATE字句 SET [ SESSION | LOCAL ] NAMES {'charset_name' [COLLATE 'collation_name'] | DEFAULT}; GaussDB中暂不支持
MySQL数据库兼容性概述 本章节主要介绍GaussDB数据库的MySQL 5.7兼容模式(即sql_compatibility = 'B'、且设置参数b_format_version='5.7'、b_format_dev_version='s1'时)与MySQL5.7数据库的兼容性对比信息。仅介绍503
char(0))将空串转成char(0)类型。MySQL支持按长度转成对应的类型。 操作符 GaussDB能正常转成浮点型的字符串与整型值加减乘除求余,返回值是整型值,MySQL是返回浮点型。 GaussDB除以0会报错,MySQL返回null。 “~”:GaussDB返回负数,MySQL返回8字节无符号整数。
GaussDB中NULLIF()类型推导遵从以下逻辑: 如果两个参数的数据类型不同,且两入参类型存在等值比较操作符,则返回对应等值操作符对应的左值类型,否则会对两入参类型进行强制类型兼容。 若强制类型兼容后,存在等值比较操作符,则返回强制类型兼容后对应等值操作符的左值类型。 若强制类型兼容后,仍找不到对应等值操作符,则报错。
二进制数据类型 表1 二进制数据类型 序号 MySQL数据库 GaussDB数据库 差异 1 BINARY[(M)] 不支持 - 2 VARBINARY(M) 不支持 - 3 TINYBLOB 支持 取值范围:不支持长度限制255字节(最大不超过1G),不支持超限后,根据严格宽松模式报错和截断告警。