检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
比较操作符返回结果显示不同。MySQL返回1/0;GaussDB返回t/f。 表1 操作符 MySQL数据库 GaussDB数据库 差异 <> 支持,存在差异 MySQL支持索引,GaussDB不支持索引。 <=> 支持,存在差异 MySQL支持索引,GaussDB不支持索引、hash连接和合并连接。
注意事项 缺省情况下,客户端连接数据库后处于空闲状态时会根据GUC参数session_timeout的默认值自动断开连接。如果要关闭超时设置,设置GUC参数session_timeout为0即可。 前提条件 已联系管理员获取连接信息。 远程连接数据库 完成远程连接配置,请联系管理员处理。
MySQL兼容性M-Compatibility模式 数据类型 系统函数 操作符 字符集 排序规则 事务 SQL 驱动
事务的隔离级别。 在MySQL中是设置会话级事务的隔离级别。 GaussDB中,通过使用SET命令,只能改变当前事务的隔离级别。如果想要改变会话级的隔离级别,可以使用default_transaction_isolation。在MySQL中,通过使用SET命令,可以改变会话级的事务隔离级别。
数据类型 数值数据类型 日期与时间数据类型 字符串数据类型 二进制数据类型 JSON数据类型 数据类型支持的属性 数据类型转换 父主题: MySQL兼容性B模式
SQL兼容性概述 GaussDB数据库兼容绝大多数MySQL语法,但存在部分差异。本章节介绍GaussDB数据库当前支持的MySQL语法。 部分关键字在MySQL可以做标识符但在M-Compatibility不可以或存在限制,如表1所示。 表1 受限标识符列表 关键字类型 关键字
当查询语句不带from子句时,GaussDB支持带where子句,与MySQL 8.0保持一致,MySQL 5.7不支持。 -- GaussDB m_db=# SELECT 1 WHERE true; 1 --- 1 (1 row) -- MySQL 5.7 mysql> SELECT 1 WHERE true;
MySQL兼容性B模式 数据类型 系统函数 操作符 字符集 排序规则 表达式 SQL 驱动
二进制数据类型 MySQL数据库 GaussDB数据库 差异 BINARY[(M)] 不支持 - VARBINARY(M) 不支持 - TINYBLOB 支持,存在差异 取值范围:GaussDB中该类型由BYTEA类型映射得来,长度不能超过1GB,超过长度限制后会报错。MySQL中该类型
SQL SQL兼容性概述 关键字 标识符 DDL DML DCL 其他语句 用户与权限 系统表和系统视图 父主题: MySQL兼容性M-Compatibility模式
比较操作符返回结果显示不同。MySQL返回1/0;GaussDB返回t/f。 表1 操作符 MySQL数据库 GaussDB数据库 差异 <> 支持,存在差异 MySQL支持索引,GaussDB不支持索引。 <=> 支持,存在差异 MySQL支持索引,GaussDB不支持索引、hash连接和合并连接。
成空格,与MySQL行为存在差异。如果兼容性参数m_format_behavior_compat_options中包含disable_zero_chars_conversion选项,则禁止将“\0”字符转换成空格,与MySQL行为一致。 ODBC 父主题: MySQL兼容性M-Compatibility模式
ANY_VALUE函数入参为NULL、字符串类型时,返回值类型与MySQL存在差异。例如: 入参为NULL时,GaussDB返回值类型为BIGINT,MySQL返回值类型为binary。 入参为VARCHAR类型时,GaussDB返回值类型为VARCHAR类型,MySQL返回值类型可能是VARCHAR类型,也可能是TEXT类型。
驱动 ODBC 父主题: MySQL兼容性M-Compatibility模式
默认情况下会与MySQL有一定差异。要实现与MySQL的兼容,需要设置GUC参数standard_conforming_strings取值为off,在这种情况下,转义字符的处理将与MySQL兼容,但是使用转义字符\f、\Z、\0和\uxxxx的场景会与MySQL存在差异。 表1
支持,存在差异 返回值与MySQL有差异,GaussDB返回的是numeric,MySQL返回的是int。 UTC_DATE() 支持,存在差异 MySQL支持无括号调用,GaussDB不支持。MySQL入参整型值会按照一字节最大值255整数回绕。 MySQL入参只支持0-6整数,
aussDB中输出结果为t/f,MySQL为1/0,BOOLEAN类型实际映射为TINYINT类型。 子查询 SELECT GaussDB不支持子查询结果包含多列,包含多列时执行会报错;MySQL支持子查询包含多列。 MySQL的行为: mysql> SELECT row(1,2)
crement的值,会产生错误。MySQL允许,并说明auto_increment_offset会被忽略。 在表有主键或索引的情况下,ALTER TABLE命令重写表数据的顺序与MySQL不一定相同,GaussDB按照表数据存储顺序重写,MySQL会按主键或索引顺序重写,导致自增值的顺序可能不同。
db_mysql=# SET @`\`` = 1; db_mysql`# 形如set @var_name1 = @var_name2 := @var_name3 = @var_name4 := expr; 连续赋值,MySQL支持,GaussDB不支持。 db_mysql=# set
JDBC JDBC接口参考 父主题: 驱动