检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
换、仅支持赋值时转换。不支持的场景下即使定义了转换路径,也不能做数据类型转换。 MySQL数据库支持任意两种数据类型之间做转换。 由于存在以上差异,基于MySQL数据库的应用程序向GaussDB数据库迁移时,SQL语句可能由于不支持不同数据类型之间的转换而报错。或者支持转换的场景
作为函数/存储过程出入参、返回值时,MySQL支持功能、GaussDB语法不报错功能不支持。 GaussDB数据库和MySQL数据库整数类型具体差异请参见表1。 表1 整数类型 MySQL数据库 GaussDB数据库 差异 BOOL 支持,存在差异 MySQL:BOOL/BOOLEAN类型实际映射为TINYINT类型。
聚合函数 表1 聚合函数列表 MySQL数据库 GaussDB数据库 差异 GROUP_CONCAT() 支持,存在差异 当group_concat参数中同时有DISTINCT和ORDER BY语法时,所有ORDER BY后的表达式必须也在DISTINCT的表达式之中。 group_concat(
CREATE DATABASE test_database_info DBCOMPATIBILITY 'mysql'; 步骤四:迁移数据库 创建DRS实例,将本地MySQL上的test_info数据库同步到GaussDB实例中test_database_info数据库中。 迁移前检查
63”。由转义字符引起的本函数与MySQL的差异,此为GaussDB与MySQL的转义字符差异。 str字符串中的“\b”,输出结果表现形式与MySQL有差异。此为GaussDB与MySQL的固有差异 str字符串中含有“\0”时,GaussDB由于UTF-8字符集不识别该字符,
数字操作函数列表 MySQL数据库 GaussDB数据库 差异 log2() 支持,存在差异 小数位显示与MySQL存在差异,受GaussDB浮点数据类型限制,可通过参数extra_float_digits控制小数位个数显示。 由于输入精度内部处理差异,GaussDB与MySQL会存在结果计算差异。
JDBC JDBC接口参考 父主题: 驱动
流量控制函数 表1 流量控制函数列表 MySQL数据库 GaussDB数据库 差异 IF() 支持,存在差异 expr1入参仅支持bool类型。非bool类型入参若不能转换为bool类型则报错。 若expr2、expr3两个入参类型不同且两类型间不存在隐式转换函数则报错。 两个入参类型相同时,返回该入参类型。
数据类型支持的属性 表1 数据类型支持的属性 MySQL数据库 GaussDB数据库 NULL 支持 NOT NULL 支持 DEFAULT 支持 ON UPDATE 支持 PRIMARY KEY 支持 CHARACTER SET name 支持 COLLATE name 支持 父主题:
其他函数 表1 其他函数列表 MySQL数据库 GaussDB数据库 差异 DATABASE() 支持 - UUID() 支持 - UUID_SHORT() 支持 - ANY_VALUE() 支持,存在差异 作为分组的第一条数据是不确定的,与底层算子相关。例如同一条sql语句,GaussDB返回5和4,MySQL返回5和2。
二进制数据类型 MySQL数据库 GaussDB数据库 差异 BINARY[(M)] 不支持 - VARBINARY(M) 不支持 - TINYBLOB 支持,存在差异 取值范围:GaussDB中该类型由BYTEA类型映射得来,长度不能超过1GB,超过长度限制后会报错。MySQL中该类型
7数据库的兼容性对比信息。仅介绍503.0.0版本后新增的兼容性特性,特性的相关规格和约束建议在《开发指南》中查看。 GaussDB数据库在数据类型、SQL功能和数据库对象等基本功能上与MySQL数据库兼容。 由于GaussDB数据库与MySQL数据库在底层框架实现上存在差异,Ga
字符串数据类型 MySQL数据库 GaussDB数据库 差异 CHAR[(M)] 支持,存在差异 输入格式 GaussDB自定义函数参数和返回值不支持长度校验,存储过程参数不支持长度校验,同时也不支持在PAD_CHAR_TO_FULL_LENGTH打开时补齐正确的空格,MySQL支持。
SQL兼容性概述 GaussDB数据库兼容绝大多数MySQL语法,但存在部分差异。本章节介绍GaussDB数据库当前支持的MySQL语法。 部分关键字在MySQL可以做标识符但在M-Compatibility不可以或存在限制,如表1所示。 表1 受限标识符列表 关键字类型 关键字
设置全局会话级事务特性,该特性适用于后续会话,对当前会话无影响。 M-Compatibility中,GLOBAL是全局会话级别生效,只针对当前数据库实例,其它数据库不影响。 MySQL中,会使所有数据库生效。 -- SET TRANSACTION会话级生效。 m_db=# SET TRANSACTION ISOLATION
驱动 JDBC 父主题: MySQL兼容性B模式
SQL DDL DML DCL 父主题: MySQL兼容性B模式
MySQL兼容性B模式 数据类型 系统函数 操作符 字符集 排序规则 表达式 SQL 驱动
DML MySQL数据库功能概述 详细语法说明 GaussDB数据库实现差异 DELETE支持从多个表中删除数据 DELETE - DELETE支持ORDER BY和LIMIT DELETE - DELETE支持从指定分区(或子分区)删除数据 DELETE - UPDATE支持从多个表中更新数据
并行导入或插入自动增长列触发自增时,每个并行线程预留的缓存值也只在其线程中使用,未完全使用完毕的话,也会出现表中自动增长列的值不连续的情况。并行插入产生的自增值结果无法保证与MySQL完全一致。 本地临时表中的自动增长列批量插入时不会预留自增值,正常场景不会产生不连续的自增值。MySQL临时表与普通表中的自动增长列自增结果一致。