检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
MySQL兼容,在转义字符中,\f、\Z、\0和\uxxxx的场景与MySQL有差异。
数据库支持通过可加载函数接口,向MySQL中添加自定义函数,在调用此类函数时,函数的入参支持指定别名。
MySQL数据库支持通过可加载函数接口,向MySQL中添加自定义函数,在调用此类函数时,函数的入参支持指定别名。GaussDB不支持可加载函数接口,在调用函数时,函数入参不支持指定别名。
*'表示模式层级的授权对象;在M-Compatibility中,使用'{DATABASE | SCHEMA} dbname'表示模式层级的授权对象。 MySQL中用户名为两部分:用户名@主机名;M-Compatibility当前仅支持用户名。
信息函数 表1 信息函数列表 序号 MySQ数据库 GaussDB数据库 差异 1 LAST_INSERT_ID() 支持 - 父主题: 系统函数
窗口函数 表1 窗口函数列表 序号 MySQL数据库 GaussDB数据库 差异 1 LAG() 支持,有差异。 偏移量N的取值范围不同: MySQL中,N只允许是在范围[0, 263-1]整数值。 GaussDB中,N只允许是在范围[0, 231-1]整数值。
数值数据类型 表1 整数类型 序号 MySQL数据库 GaussDB数据库 差异 1 BOOL 支持,存在差异 输出格式:GaussDB中SELECT TRUE/FALSE输出结果为t/f,MySQL为1/0。
53 UTC_DATE() 支持 MySQL支持无括号调用,GaussDB不支持。MySQL入参整型值会按照一字节最大值255整数回绕。 MySQL入参只支持0-6整数, GaussDB支持可以隐式转为0-6的输入。
词法语法解析按照字节流解析,当多字节字符中包含与'\', '\'', '\\'等符号一致的编码时,会导致与MySQL行为不一致,建议暂时关闭转义符开关进行规避。 父主题: MySQL数据库兼容性M-Compatibility模式
GaussDB支持JSON数据类型与MySQL相比,规格存在如下差异: 取值范围: 在MySQL中,JSON数据类型的最大长度为4GB,但在GaussDB中,JSON数据类型的最大长度小于1GB,对象的键值对个数最大值和数组的元素个数最大值也小于MySQL。
而MySQL会校验报错。 父主题: MySQL数据库兼容性M-Compatibility模式
M-Compatibility与MySQL的表达式的字符串拼接逻辑的不同而存在差异。
MySQL支持按长度转成对应的类型。 操作符 GaussDB能正常转成浮点型的字符串与整型值加减乘除求余,返回值是整型值,MySQL是返回浮点型。 GaussDB除以0会报错,MySQL返回null。 “~”:GaussDB返回负数,MySQL返回8字节无符号整数。
其他函数 表1 其他函数列表 序号 MySQL数据库 GaussDB数据库 差异 1 DATABASE() 支持。 - 2 UUID() 支持。 - 3 UUID_SHORT() 支持。 - 父主题: 系统函数
MySQL中int类型,在M-Compatibility中是integer类型。 MySQL中的set、enum类型的字段,M-Compatibility中都不支持。
DCL 表1 DCL语法兼容介绍 序号 概述 详细语法说明 差异 1 SET NAMES指定COLLATE字句 SET [ SESSION | LOCAL ] NAMES {'charset_name' [COLLATE 'collation_name'] | DEFAULT};
函数返回值类型在MySQL5.7和MySQL8.0中存在差异,结合MySQL8.0的行为更为合理,因此函数返回值类型兼容MySQL8.0。
入参为NUMERIC类型时,返回类型可能与MySQL不一致。 当参数为常量、表字段时结果类型和MySQL5.7保持一致。对于其他类型的入参如嵌套情况,结果会有差异,GaussDB返回NUMERIC类型,MySQL可能返回整型。
强制转换函数 表1 强制转换函数列表 序号 MySQL数据库 GaussDB数据库 差异 1 CAST() 支持 由于函数执行机制不同,flags无法传递给内层函数,在cast函数嵌套其他函数(如greatest、least等)时,内层函数返回小于1的值,结果与MySQL不一致。
5.7 mysql> CREATE TABLE sub_query_table (myfloat float); Query OK, 0 rows affected (0.02 sec) mysql> INSERT INTO sub_query_table (myfloat) VALUES