检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
其他函数 表1 其他函数列表 MySQL数据库 GaussDB数据库 差异 DATABASE() 支持 - UUID() 支持 - UUID_SHORT() 支持 - ANY_VALUE() 支持,存在差异 作为分组的第一条数据是不确定的,与底层算子相关。例如同一条sql语句,G
窗口函数 窗口函数差异说明:MySQL数据库管理系统在调用窗口函数时,OVER子句中的ORDER BY子句与PARTITION BY子句不支持使用列别名,GaussDB数据库支持使用列别名。 表1 窗口函数列表 MySQL数据库 GaussDB数据库 差异 LAG() 支持,存在差异
驱动 JDBC 父主题: MySQL兼容性B模式
其他函数 表1 其他函数列表 MySQL数据库 GaussDB数据库 差异 DATABASE() 支持 - UUID() 支持 - UUID_SHORT() 支持 - 父主题: 系统函数
日期和时间函数 字符串函数 强制转换函数 加密函数 比较函数 聚合函数 JSON函数 窗口函数 数字操作函数 网络地址函数 其他函数 父主题: MySQL兼容性M-Compatibility模式
启用DELETE. 级别:全局、数据库、表。 DROP 允许删除数据库、表和视图。级别:全局、数据库、表。 EVENT 启用定时任务。级别:全局、数据库。 EXECUTE 使用户能够执行存储过程。级别:全局、数据库、存储过程。 FILE 使用户能够使服务器读取或写入文件。级别:全局。 GRANT
并使用科学计数法计数。和MySQL的非JSON类型入参相同。但是在JSON类型入参时,由于JSON类型未完全与MySQL兼容,此场景下会产生差异。MySQL会完整显示数字(并且当数字长度超过82时,MySQL会给出错误的结果),GaussDB依然将超长数字解析为一个double
SQL DDL DML DCL 父主题: MySQL兼容性B模式
procs_priv 在MySQL下需要授权后才能查看视图内容,M-Compatibility数据库可以根据默认权限查看到对应的内容。如对于表t1,在MySQL下需要先对t1给对应的用户授权,才能在权限视图中看到对应的权限信息,M-Compatibility数据库下则可以直接在视图中看到t1表相关的权限信息。
比较函数 表1 比较函数列表 MySQL数据库 GaussDB数据库 差异 COALESCE() 支持,存在差异 union distinct场景下,返回值精度与MySQL不完全一致。 当第一个不为NULL的参数的后续参数表达式中存在隐式类型转换错误时,MySQL会忽略该错误,Gauss
表1 强制转换函数列表 MySQL数据库 GaussDB数据库 差异 CAST() 支持,存在差异 由于函数执行机制不同,flags无法传递给内层函数,在cast函数嵌套其他函数(如greatest、least等)时,内层函数返回小于1的值,结果与MySQL不一致。 --GaussDB:
加密函数 表1 加密函数列表 MySQL数据库 GaussDB数据库 差异 AES_DECRYPT() 支持,存在差异 ecb为不安全加密模式,GaussDB不支持,默认为cbc模式。 GaussDB中,当指定数据库使用的字符编码是SQL_ASCII时,服务器把字节值0~127根
数字操作函数 表1 数字操作函数列表 MySQL数据库 GaussDB数据库 差异 ABS() 支持 - ACOS() 支持 - ASIN() 支持 - ATAN() 支持 - ATAN2() 支持 - CEILING() 支持,存在差异 部分操作结果类型以及CREATE TABLE
{'charset_name' [COLLATE 'collation_name'] | DEFAULT}; GaussDB中暂不支持指定charset_name与数据库字符集不同。具体请参考《M-Compatibility开发指南》中“SQL参考 > SQL语法 > SQL语句 > S > SET ”章节。
SUBSTRING_INDEX函数存在差异: 在第三个入参为负数时,MySQL与GaussDB的比较逻辑不同,会导致结果可能存在差异。 当第三个入参为正数时,由于MySQL 5.7以int32位存储,会存在回绕问题导致结果不正确。MySQL 8.0修复了该问题以int64为存储,GaussDB以8.0为准。当入参值超过2^63
概述 MySQL兼容性MySQL模式概述 MySQL兼容性M-Compatibility模式概述
SET 自定义变量长度的差异。例如: MySQL自定义变量名长度没有约束。 GaussDB自定义变量名长度不超过64字节,超过部分的变量名会截断并提示告警。 SET TRANSACTION语法兼容 SET TRANSACTION MySQL可以设置当前会话(session)和全局
报错,并提示M-Compatibility兼容模式数据库不支持;其他行为和《开发指南》中的“SQL参考 > 函数和操作符 > 字符处理函数和操作符”章节中的同名函数保持一致。 MySQL数据库支持通过可加载函数接口,向MySQL中添加自定义函数,在调用此类函数时,函数的入参支持指
字符串函数 表1 字符串函数列表 MySQL数据库 GaussDB数据库 差异 ASCII() 支持 - BIT_LENGTH() 支持 - CHAR_LENGTH() 支持,存在差异 GaussDB此函数如果数据库字符集是SQL_ASCII,CHAR_LENGTH()会返回字节数而非字符数。
GaussDB的自定义函数参数和返回值不支持长度校验,存储过程参数不支持长度校验,MySQL支持。 GaussDB的自定义函数和存储过程中的临时变量支持长度校验以及严格宽松模式下的报错和截断告警,MySQL不支持。 输入二进制或十六进制字符串时,GaussDB输出为十六进制,MySQL中根据ASCII码表转义,无法转义的输出为空。