检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
GaussDB数据库的数据类型大部分功能场景与MySQL一致,但存在部分差异。 除特别说明外,MySQL兼容性M-Compatibility模式中的数据类型精度、标度、位数大小等默认不支持用浮点型数值定义,建议使用合法的整型数值定义。 GaussDB回显以\0结束,MySQL会把整个字
默认值:创建表列时语法上允许设置默认值,MySQL不允许设置默认值。 输入二进制或十六进制字符串时,GaussDB输出为十六进制,MySQL中根据ASCII码表转义,无法转义的输出为空。 主键:MySQL中TEXT类型不支持主键,GaussDB支持。 索引:MySQL中TEXT类型不支持
数据类型 GaussDB数据库的数据类型大部分功能场景与MySQL一致,但存在部分差异。 除特别说明外,MySQL兼容性M-Compatibility模式中的数据类型精度、标度、位数大小等默认不支持用浮点型数值定义,建议使用合法的整型数值定义。 数值数据类型 日期与时间数据类型 字符串数据类型
聚合函数列表 MySQL数据库 GaussDB数据库 差异 AVG() 支持,存在差异 GaussDB中指定DISTINCT且SQL语句包含GROUP BY子句时,不保证结果的顺序。 GaussDB中当expr中的列为BIT、BOOL、整数类型,且所有行的和超过BIGINT的范围时,会发生溢出导致整数翻转。
GaussDB的按精度输出的时间值(小数点后的值)是四舍五入的;MySQL是直接截断的。GaussDB按精度输出的时间值(小数点后的值)末尾0都不显示;MySQL会显示。GaussDB只支持输入[0,6]范围内的整型值,作为返回时间的精度,其他均报错;MySQL的精度值有效值是[0
字符集 GaussDB数据库支持指定数据库、模式、表或列的字符集,支持的范围如下。 表1 字符集列表 MySQL数据库 GaussDB数据库 utf8mb4 支持 utf8 支持 gbk 支持 gb18030 支持 binary 支持 utf8和utf8mb4在GaussDB中为
支持,存在差异 无论参数的数据类型如何,concat返回值的数据类型始终为text;MySQL的concat在含有二进制类型参数时,返回值为二进制类型。 CONCAT_WS() 支持,存在差异 无论参数的数据类型如何,concat_ws返回值的数据类型始终为text;MySQL的concat
PBE PBE 重复创建同名的PREPARE语句,M-Compatibility会报已经存在的错误,需要先删除已有statement,MySQL会覆盖旧的statement。 M-Compatibility和MySQL在SQL语句执行过程中对异常场景的报错阶段不同,例如解析层、执
PBE PBE 重复创建同名的PREPARE语句,M-Compatibility会报已经存在的错误,需要先删除已有statement,MySQL会覆盖旧的statement。 M-Compatibility和MySQL在SQL语句执行过程中对异常场景的报错阶段不同,例如解析层、执
服务端会将参数中的“\0”字符替换成空格,与MySQL行为存在差异。如果兼容性参数m_format_behavior_compat_options中包含disable_zero_chars_conversion选项,则禁止将“\0”字符转换成空格,与MySQL行为一致。 ODBC
不支持设置数字。 AES_ENCRYPT() 支持,存在差异 PASSWORD() 支持,存在差异 MySQL中可以通过GUC参数old_passwords控制生成密码的哈希方式: old_passwords的默认值为0。 old_passwords为0:表示使用MySQL 4.1
默认值:创建表列时语法上允许设置默认值,MySQL不允许设置默认值。 输入二进制或十六进制字符串时,GaussDB输出为十六进制,MySQL中根据ASCII码表转义,无法转义的输出为空。 主键:MySQL中TINYBLOB类型不支持主键,GaussDB支持。 索引:MySQL中TINYBLO
默认值:创建表列时语法上允许设置默认值,MySQL不允许设置默认值。 输入二进制或十六进制字符串时,GaussDB输出为十六进制,MySQL中根据ASCII码表转义,无法转义的输出为空。 主键:MySQL中TINYBLOB类型不支持主键,GaussDB支持。 索引:MySQL中TINYBLO
信息函数 表1 信息函数列表 MySQ数据库 GaussDB数据库 差异 LAST_INSERT_ID() 支持 - 父主题: 系统函数
比较函数 表1 比较函数列表 MySQL数据库 GaussDB数据库 差异 COALESCE() 支持,存在差异 union distinct场景下,返回值精度与MySQL不完全一致。 当第一个不为NULL的参数的后续参数表达式中存在隐式类型转换错误时,MySQL会忽略该错误,Gauss
其他函数 表1 其他函数列表 MySQL数据库 GaussDB数据库 差异 DATABASE() 支持 - UUID() 支持 - UUID_SHORT() 支持 - 父主题: 系统函数
5”有多个小数点的的字符串形式输入,在宽松模式下,会将第二个小数点后的字符当作非法字符全部截断,抛出WARNING并插表成功,例如将“1.2.3.4.5”插入表后值为1,“1.6.3.4.5”插入表后值为2。 表2 任意精度类型 MySQL数据库 GaussDB数据库 差异 DECIMAL[(M[
{'charset_name' [COLLATE 'collation_name'] | DEFAULT}; GaussDB中暂不支持指定charset_name与数据库字符集不同。具体请参考《M-Compatibility开发指南》中“SQL参考 > SQL语法 > SQL语句 > S > SET ”章节。
表1 强制转换函数列表 MySQL数据库 GaussDB数据库 差异 CAST() 支持,存在差异 由于函数执行机制不同,flags无法传递给内层函数,在cast函数嵌套其他函数(如greatest、least等)时,内层函数返回小于1的值,结果与MySQL不一致。 --GaussDB:
对象的键值对个数最大值和数组的元素个数最大值也小于MySQL。 字符序差异: 在MySQL中,使用collation函数单独查询JSON类型的列,返回的字符序是BINARY,但GaussDB中返回utf8mb4_bin。其他使用的场景都使用utf8mb4_bin,与MySQL相同。