检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
时)与MySQL 5.7数据库的兼容性对比信息。仅介绍503.0.0版本后新增的兼容性特性,特性的相关规格和约束建议在《开发指南》中查看。 GaussDB数据库在数据类型、SQL功能和数据库对象等基本功能上与MySQL数据库兼容。 由于GaussDB数据库与MySQL数据库在底层
MySQL兼容性MySQL模式 数据类型 系统函数 操作符 字符集 排序规则 SQL 驱动
表达式 GaussDB数据库兼容绝大多数MySQL的表达式,但存在部分差异。如未列出,表达式行为默认为GaussDB原生行为。 表1 表达式 MySQL数据库 GaussDB数据库 用户自定义变量@var_name 部分支持 全局变量@@var_name 部分支持 父主题: MySQL兼容性B模式
字符集 GaussDB数据库支持指定数据库、模式、表或列的字符集,支持的范围如下。 表1 字符集列表 MySQL数据库 GaussDB数据库 utf8mb4 支持 gbk 支持 gb18030 支持 目前GaussDB对不属于当前字符集的非法字符未执行严格的编码逻辑校验,可能导致
when/decode,MySQL不补齐0,GaussDB在类型及宽度信息一致时补齐0。 作为函数/存储过程出入参、返回值时,MySQL支持功能、GaussDB语法不报错功能不支持。 GaussDB数据库和MySQL数据库整数类型具体差异请参见表1。 表1 整数类型 MySQL数据库 GaussDB数据库
create_time 在M-Compatibility下,此字段与MySQL行为表现有差异,对于创建视图的情形MySQL中该字段置null,M-Compatibility则显示实际的创建表时间。数据库自带的表,视图设置null。 information_schema.tables
操作符 GaussDB数据库兼容绝大多数MySQL的操作符,但存在部分差异。除特别说明外,MySQL兼容性MySQL模式中的操作符行为默认为GaussDB原生行为。 表1 操作符 MySQL数据库 GaussDB数据库 差异 安全等于(<=>) 支持 - [NOT] REGEXP
GaussDB与MySQL的JDBC接口定义一致,均遵循业界规范,本章节主要介绍GaussDB数据库的MySQL兼容性B模式与MySQL数据库JDBC接口的行为差异。 获取结果集中的数据 ResultSet对象提供了丰富的方法,以获取结果集中的数据。获取数据常用的方法如表1所示,其他方法请参考JDK官方文档。
驱动 JDBC 父主题: MySQL兼容性MySQL模式
sec) 表1 日期与和时间函数列表 MySQL数据库 GaussDB数据库 差异 ADDDATE() 支持,存在差异 此函数的表现会因为interval表达式的差异与MySQL有差异,具体可见INTERVAL差异说明。 ADDTIME() 支持,存在差异 MySQL对第二入参为
------------------------------ [1, 4, 1e+74, [1, 4, 1e+74]] (1 row) 表1 JSON函数列表 MySQL数据库 GaussDB数据库 差异 JSON_APPEND() 支持 - JSON_ARRAY() 支持 - JSON_ARRAY_APPEND()
mb4_general_ci,与MySQL 5.7保持一致,utf8mb4_0900_ai_ci为utf8mb4的非默认字符序。 GaussDB中utf8和utf8mb4为同一个字符集。 表1 排序规则列表 MySQL数据库 GaussDB数据库 utf8mb4_general_ci
字符串函数 表1 字符串函数列表 MySQL数据库 GaussDB数据库 差异 BIN() 支持,存在差异 函数入参支持类型存在差异,GaussDB入参支持类型如下: 整数类型:tinyint、smallint、mediumint、int、bigint 无符号整数类型:tinyint
即使定义了转换路径,也不能做数据类型转换。 MySQL数据库支持任意两种数据类型之间做转换。 由于存在以上差异,基于MySQL数据库的应用程序向GaussDB数据库迁移时,SQL语句可能由于不支持不同数据类型之间的转换而报错。或者支持转换的场景下,转换的规则有差异导致SQL语句执行的结果不同。
sDB数据库中,字符集必须与数据库的字符集一致,且不支持表内多种字符集混合使用。 utf8mb4字符集下默认字符序为utf8mb4_general_ci,与MySQL 5.7保持一致。 GaussDB中utf8和utf8mb4为同一个字符集。 表1 排序规则列表 MySQL数据库
数字操作函数 表1 数字操作函数列表 MySQL数据库 GaussDB数据库 差异 log2() 支持,存在差异 小数位显示与MySQL存在差异,受GaussDB浮点数据类型限制,可通过参数extra_float_digits控制小数位个数显示。 由于输入精度内部处理差异,Gau
比较操作符返回结果显示不同。MySQL返回1/0;GaussDB返回t/f。 表1 操作符 MySQL数据库 GaussDB数据库 差异 <> 支持,存在差异 MySQL支持索引,GaussDB不支持索引。 <=> 支持,存在差异 MySQL支持索引,GaussDB不支持索引、hash连接和合并连接。
比较操作符返回结果显示不同。MySQL返回1/0;GaussDB返回t/f。 表1 操作符 MySQL数据库 GaussDB数据库 差异 <> 支持,存在差异 MySQL支持索引,GaussDB不支持索引。 <=> 支持,存在差异 MySQL支持索引,GaussDB不支持索引、hash连接和合并连接。
聚合函数 表1 聚合函数列表 MySQL数据库 GaussDB数据库 差异 GROUP_CONCAT() 支持,存在差异 当group_concat参数中同时有DISTINCT和ORDER BY语法时,所有ORDER BY后的表达式必须也在DISTINCT的表达式之中。 group_concat(
系统函数兼容性概述 GaussDB数据库兼容绝大多数MySQL的系统函数,但存在部分差异。 除特别说明外,MySQL兼容性MySQL模式中的函数行为默认为GaussDB原生行为。 GaussDB MySQL兼容性的绝大部分系统函数目前均存在返回值与MySQL精度不一致(结果后面0的位数