检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
GaussDB数据库兼容绝大多数MySQL的表达式,但存在部分差异。如未列出,表达式行为默认为GaussDB原生行为。 表1 表达式 序号 MySQL数据库 GaussDB数据库 1 用户自定义变量@var_name 部分支持 2 全局变量@@var_name 部分支持 父主题: MySQL数据库兼容性B模式
为保留关键字,在MySQL中为非保留关键字,其差异为:在M-Compatibility模式下不可作为表名、列名、列别名、AS列别名、AS表别名、表别名、函数名和变量名,在MySQL中支持。 当关键字在M-Compatibility模式下为非保留关键字,在MySQL中为保留关键字,
的字符集,支持的范围如下。 表1 字符集列表 序号 MySQL数据库 GaussDB数据库 1 utf8mb4 支持 2 gbk 支持 3 gb18030 支持 4 utf8 支持 5 binary 支持 父主题: MySQL数据库兼容性B模式
GUC参数group_concat_max_len有效范围是0-1073741823,最大值比MySQL小。 2 DEFAULT() 支持 字段默认值为数组形式,GaussDB返回数组形式,MySQL不支持数组类型。 GaussDB字段是隐藏列(比如xmin、cmin),default函数返回空值。
MySQL数据库兼容性B模式 MySQL数据库兼容性概述 数据类型 系统函数 操作符 字符集 排序规则 表达式 SQL 驱动 父主题: 集中式版
认情况下会与MySQL有一定差异,需要设置GUC参数set standard_conforming_strings= off;的情况下,对于转义字符的场景才会与MySQL兼容,但是会产生非标准字符输入的warning告警,在转义字符中\t、\u与转义数字与MySQL有差异。JSO
比较操作符返回结果显示不同。MySQL返回1/0;GaussDB返回t/f。 表1 操作符 序号 MySQL数据库 GaussDB数据库 差异 1 <> 支持,但有差异。 MySQL支持索引,GaussDB不支持索引。 2 <=> 支持,但有差异。 MySQL支持索引,GaussDB不支持索引、hash连接和合并连接。
数据类型 GaussDB的数据类型的大部分功能场景与MySQL一致,但存在部分差异。 除特别说明,部分数据类型精度、标度、位数大小等不支持用浮点型数值定义,建议使用合法的整型数值定义。 数值数据类型 日期与时间数据类型 字符串数据类型 二进制数据类型 JSON数据类型 数据类型支持的属性
EXCHANGE PARTITION。MySQL自动增长列必须为索引第一个字段。 AUTO_INCREMENT = value语法,value必须为小于2^127的正数。MySQL不校验value。 当自增值已经达到字段数据类型的最大值时,继续自增将产生错误。MySQL有些场景产生错误或警告,有些场景仍自增为最大值。
USER、ALTER USER设置用户相关属性。 MySQL支持用户代理赋权,GRANT PROXY ON主要用于对多个用户进行统一的权限管理。MySQL5.7未提供角色机制,而在MySQL8.0和M-Compatibility中都提供了角色机制。角色能满足用户对于多个用户权限统一管控的目标,可以替代GRANT
GaussDB无引号标识符中不支持以美元符号($)开头,MySQL无引号标识符中支持。 GaussDB无引号标识符中的支持大小写敏感的数据库对象。 GaussDB标识符支持U+0080~U+00FF扩展字符,MySQL标识符支持U+0080~U+FFFF的扩展字符。 无引号标识
GaussDB无引号标识符中不支持以美元符号($)开头,MySQL无引号标识符中支持。 GaussDB无引号标识符中的支持大小写敏感的数据库对象。 GaussDB标识符支持U+0080~U+00FF扩展字符,MySQL标识符支持U+0080~U+FFFF的扩展字符。 无引号标识
SET 自定义变量长度的差异。例如: MySQL自定义变量名长度没有约束。 GaussDB自定义变量名长度不超过64字节,超过部分的变量名会截断并提示告警。 2 SET TRANSACTION语法兼容 SET TRANSACTION MySQL可以设置当前会话(session)和全
MySQL数据库兼容性M-Compatibility模式 MySQL数据库兼容性概述 数据类型 系统函数 操作符 字符集 排序规则 事务 SQL 父主题: 分布式版
SQL GaussDB数据库兼容绝大多数MySQL语法,但存在部分差异。本章节介绍GaussDB数据库当前支持的MySQL语法。 部分关键字在MySQL可以做标识符但M-Compatibility不可以或存在限制,以下为表1。 表1 限制做标识符列表 关键字类型 关键字 约束 保留(可以是类型或函数)
为保留关键字,在MySQL中为非保留关键字,其差异为:在M-Compatibility模式下不可作为表名、列名、列别名、AS列别名、AS表别名、表别名、函数名和变量名,在MySQL中支持。 当关键字在M-Compatibility模式下为非保留关键字,在MySQL中为保留关键字,
其他函数 表1 其他函数列表 序号 MySQL数据库 GaussDB数据库 差异 1 UUID() 支持 - 2 UUID_SHORT() 支持 - 父主题: 系统函数
视图中对于整型的类型回显,不支持指定精度范围。如MySQL的bigint(1),M-Compatibility下对应的是bigint类型,MySQL中bigint(21) unsigned,在M-Compatibility下对应的是bigint unsigned类型。 MySQL中int类型,在M-Co
当查询语句不带from子句时,GaussDB支持带where子句,与MySQL8.0保持一致,MySQL5.7不支持。 -- GaussDB m_db=# SELECT 1 WHERE true; 1 --- 1 (1 row) -- MySQL5.7 mysql> SELECT 1 WHERE true;
TABLE CREATE TABLE带CHECK约束的时候,MySQL8.0会生效,MySQL5.7只解析语法但不生效。GaussDB在此功能上同步MySQL8.0版本,且GaussDB CHECK约束可以引用其他列,而MySQL不能。 GaussDB 一个表中最多只能加32767个CHECK约束。