检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
~ 5874897-12-31 AD,支持公元前的日期,宽松模式下超过范围时,返回的是0值:0000-00-00,严格模式下会报错。MySQL的范围是 0000-00-00 ~ 9999-12-31,宽松模式下超过范围后,各个场景下的表现并不一致,可能报错(如select查询语句中
长度限制255字节(最大不超过1G),不支持超限后,根据严格宽松模式报错和截断告警。 输入格式:不支持转义字符输入,不支持""双引号输入。 输出格式:对于'\0'字符,查询结果表现为“\000”,使用jdbc驱动的getBytes接口获取表现为'\0'字符。 操作符:不支持算数运
用户自定义的变量。 存储过程中的局部变量。 GaussDB中,取值形式如下: 常量字面量的无符号整数。 不支持在prepare语句中使用?声明的标记参数(prepare语句当前有差异)。 用户自定义的变量。 不支持使用存储过程中的局部变量(PLSQL当前不支持)。 ORDER BY子句排序时NULL值的排序不同:
IN 支持,但有差异。 MySQL:IN的左操作数只能是位运算或者算术运算或者由括号组成的表达式。 GaussDB:IN的左操作数可以是任意表达式。不支持ROW IN (ROW,ROW....)形式的查询。 在开启精度传递的场景下,对表中的数据使用in操作符时,若表中数据为FLO
在MySQL中,JSON数据类型的最大长度为4GB,但在GaussDB中,JSON数据类型的最大长度小于1GB,对象的键值对个数最大值和数组的元素个数最大值也小于MySQL。 字符序差异: 在MySQL中,使用collation函数单独查询JSON类型的列,返回的字符序是BINARY,但
MySQL同一会话中获取同一个表的锁,会自动释放上一个锁,并提交事务,M-Compatibility无该机制。 M-Compatibility中LOCK TABLE只能在一个事务块的内部有用,且无UNLOCK TABLE命令,锁总是在事务结束时释放。 7 PBE PBE 重复创建同名的PREPARE
MySQL同一会话中获取同一个表的锁,会自动释放上一个锁,并提交事务,M-Compatibility无该机制。 M-Compatibility中LOCK TABLE只能在一个事务块的内部有用,且无UNLOCK TABLE命令,锁总是在事务结束时释放。 7 PBE PBE 重复创建同名的PREPARE
~ 5874897-12-31 AD,支持公元前的日期,宽松模式下超过范围时,返回的是0值:0000-00-00,严格模式下会报错。MySQL的范围是 0000-00-00 ~ 9999-12-31,宽松模式下超过范围后,各个场景下的表现并不一致,可能报错(如select查询语句中
DCL 表1 DCL语法兼容介绍 序号 概述 详细语法说明 差异 1 SET NAMES指定COLLATE字句 SET [ SESSION | LOCAL ] NAMES {'charset_name' [COLLATE 'collation_name'] | DEFAULT};
其他函数 表1 其他函数列表 序号 MySQL数据库 GaussDB数据库 差异 1 DATABASE() 支持。 - 2 UUID() 支持。 - 3 UUID_SHORT() 支持。 - 父主题: 系统函数
精度传递开关关闭的情况下,也即m_format_behavior_compat_options中的enable_precision_decimal未设置时,PI函数的返回值精度与MySQL的有差异:MySQL中PI函数的结果仅保留四舍五入之后的小数后6位,而GaussDB的结果会保留四舍五入之后的小数后15位。
长度限制255字节(最大不超过1G),不支持超限后,根据严格宽松模式报错和截断告警。 输入格式:不支持转义字符输入,不支持""双引号输入。 输出格式:对于'\0'字符,查询结果表现为“\000”,使用jdbc驱动的getBytes接口获取表现为'\0'字符。 操作符:不支持算数运
AES_DECRYPT() 支持。 ecb为不安全加密模式,GaussDB不支持,默认为cbc模式。 GaussDB中,当指定数据库使用的字符编码是SQL_ASCII时,服务器把字节值0-127根据ASCII标准解释,而字节值128-255则当作无法解析的字符;如果该函数的输入输出包含了任何非ASCII
在M-Compatibility中,用户与权限管控相关的行为、语法整体沿用GaussDB的机制,暂不同步MySQL。 用户与权限的行为与GaussDB保持一致,具体行为说明请参见《开发指南》中的“数据库安全 > 用户及权限”章节。 用户与权限的语法在原有GaussDB的基础上,裁剪了部分语法,具体语法
比较函数 聚合函数 JSON函数 窗口函数 数字操作函数 网络地址函数 其他函数 父主题: MySQL数据库兼容性M-Compatibility模式
AES_DECRYPT() 支持。 ecb为不安全加密模式,GaussDB不支持,默认为cbc模式。 GaussDB中,当指定数据库使用的字符编码是SQL_ASCII时,服务器把字节值0-127根据ASCII标准解释,而字节值128-255则当作无法解析的字符;如果该函数的输入输出包含了任何非ASCII
SET和ENUM两种类型暂未支持,暂时当做报错处理。 常量类型和其他类型做类型聚合的时候,输出类型的精度为其他类型的精度。如“select "helloworld" union select p from t;”的结果的精度为属性p的精度。 定点常量和不带精度约束的类型(非字符串类型如int、bool、year等
GaussDB中NULLIF()类型推导遵从以下逻辑: 如果两个参数的数据类型不同,且两入参类型存在等值比较操作符,则返回对应等值操作符对应的左值类型,否则会对两入参类型进行强制类型兼容。 若强制类型兼容后,存在等值比较操作符,则返回强制类型兼容后对应等值操作符的左值类型。 若强制类型兼容后,仍找不到对应等值操作符,则报错。
差异 1 COALESCE() 支持,有差异。 union distinct场景下,返回值精度与MySQL不完全一致。 当第一个不为NULL的参数的后续参数表达式中存在隐式类型转换错误时,MySQL会忽略该错误,GaussDB会提示类型转换错误。当参数为MIN函数、MAX函数时,返回值类型与MySQL不一致。
JSON函数差异说明:对于JSON函数和其他字符入参函数,如果含有转义字符的输入,默认情况下与MySQL存在一定差异,需要设置GUC参数(SET m_format_behavior_compat_options = 'enable_escape_string';);对于转义字符的场景才会与MySQL兼容,在转义字符中