检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
比较操作符返回结果显示不同。MySQL返回1/0;GaussDB返回t/f。 表1 操作符 MySQL数据库 GaussDB数据库 差异 <> 支持,存在差异 MySQL支持索引,GaussDB不支持索引。 <=> 支持,存在差异 MySQL支持索引,GaussDB不支持索引、hash连接和合并连接。
系统函数兼容性概述 GaussDB数据库兼容绝大多数MySQL的系统函数,但存在部分差异。 除特别说明外,MySQL兼容性B模式中的函数行为默认为GaussDB原生行为。 GaussDB MySQL兼容性的绝大部分系统函数目前均存在返回值与MySQL精度不一致(结果后面0的位数)的问题,这是
特性约束 不支持系统表、内存表、全局临时表、本地临时表和序列表,不支持Ustore段页式表,不支持unlogged表,不支持压缩toast数据。 仅在ORA兼容模式、PG模式以及MYSQL兼容模式下有效。 Ustore不支持编解码,压缩率低于Astore。 普通表开启压缩时,扩容空间预留需按照解压后的大小评估。
SQL兼容性概述 GaussDB数据库兼容绝大多数MySQL语法,但存在部分差异。本章节介绍GaussDB数据库当前支持的MySQL语法。 部分关键字在MySQL可以做标识符但在M-Compatibility不可以或存在限制,如表1所示。 表1 受限标识符列表 关键字类型 关键字
数字操作函数列表 MySQL数据库 GaussDB数据库 差异 log2() 支持,存在差异 小数位显示与MySQL存在差异,受GaussDB浮点数据类型限制,可通过参数extra_float_digits控制小数位个数显示。 由于输入精度内部处理差异,GaussDB与MySQL会存在结果计算差异。
在M-Compatibility中是设置当前事务的隔离级别。 在MySQL中是设置会话级事务的隔离级别。 GaussDB中,通过使用SET命令,只能改变当前事务的隔离级别。如果想要改变会话级的隔离级别,可以使用default_transaction_isolation。在MySQL中,通过使用SET命令,可以改变会话级的事务隔离级别。
MySQL无限制。 锁机制 锁机制 MySQL获取read锁后,当前会话无法进行写操作,M-Compatibility获取read锁后,当前会话可以进行写操作。 MySQL给表上锁后,读取其他表报错,M-Compatibility无限制。 MySQL同一会话中获取同一个表的锁,
char(0))将空串转成char(0)类型。MySQL支持按长度转成对应的类型。 操作符 GaussDB能正常转成浮点型的字符串与整型值进行加、减、乘、除、求余计算,返回值是整型值,MySQL是返回浮点型。 GaussDB除以0会报错,MySQL返回null。 “~”:GaussDB返回负数,MySQL返回8字节无符号整数。
支持20200101数值输入。MySQL支持数值输入转换为date类型。 分隔符:GaussDB不支持加号“+”、冒号“:”作为年、月、日之间的分隔符,其他符号都支持。MySQL所有符号均可作为分隔符。 分隔符混合使用的某些场景也不支持,与MySQL也有差异,如'2020-01>
AS方式建表,对VARBINARY类型的字段设置默认值,在使用SHOW CREATE TABLE、DESC或\d 查询的时候回显与MySQL存在差异,GaussDB显示为转换成十六进制后的值,而MySQL显示为原值。 示例: m_db=# CREATE TABLE test_int( int_col
作为函数/存储过程出入参、返回值时,MySQL支持功能、GaussDB语法不报错功能不支持。 GaussDB数据库和MySQL数据库整数类型具体差异请参见表1。 表1 整数类型 MySQL数据库 GaussDB数据库 差异 BOOL 支持,存在差异 MySQL:BOOL/BOOLEAN类型实际映射为TINYINT类型。
63”。由转义字符引起的本函数与MySQL的差异,此为GaussDB与MySQL的转义字符差异。 str字符串中的“\b”,输出结果表现形式与MySQL有差异。此为GaussDB与MySQL的固有差异 str字符串中含有“\0”时,GaussDB由于UTF-8字符集不识别该字符,
数据)和Const(常量输入)类型时的情况与MySQL保持一致,其他情况(如入参为运算表达式、函数表达式等)可能返回值的类型与MySQL有差异。 系统函数在涉及LIMIT与OFFSET同时使用的查表场景下,由于GaussDB和MySQL的执行层机制不同,GaussDB会逐行调用函
JSON数据类型 MySQL数据库 GaussDB数据库 差异 JSON 支持,存在差异 GaussDB数据库MySQL兼容性B模式中的JSON类型与GaussDB数据库原生的JSON类型行为一致,与MySQL行为差异较大,此处不再逐个列出。 GaussDB数据库MySQL兼容性B模式
模式字符串pat非法入参,只存在右单括号“)”时,GaussDB会报错,MySQL 5.7会报错,MySQL 8.0不会报错。 在de|abc匹配序列de或abc的匹配规则,当|左右存在空值时,GaussDB不会报错,MySQL 5.7会报错,MySQL 8.0不会报错。 制表符“\t”正则匹配字符类[:blank:],GaussDB可匹配,MySQL
其他函数 表1 其他函数列表 MySQL数据库 GaussDB数据库 差异 UUID() 支持 - UUID_SHORT() 支持 - 父主题: 系统函数
AS方式建表,对VARBINARY类型的字段设置默认值,在使用SHOW CREATE TABLE、DESC或\d 查询的时候回显与MySQL存在差异,GaussDB显示为转换成十六进制后的值,而MySQL显示为原值。 示例: m_db=# CREATE TABLE test_int( int_col
RING或TIME其中一个时,GaussDB输出为TEXT类型,MySQL输出为VARCHAR类型。 两个入参类型其中一个为FLOAT4类型另一个为numeric范畴中任一类型,返回值为DOUBLE类型。MySQL其中一入参为FLOAT4,另一入参为TINYINT、UNSIGNED
COALESCE GaussDB和MySQL数据库对于数据类型转换、转换的目标数据类型有着完全不同的规则。如下示例体现了两者处理的差异: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 -- MySQL: in 执行结果为0,表示fals
加密函数 表1 加密函数列表 MySQL数据库 GaussDB数据库 差异 AES_DECRYPT() 支持 - AES_ENCRYPT() 支持 - 父主题: 系统函数