正在生成
详细信息:
检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
比较操作符返回结果显示不同。MySQL返回1/0;GaussDB返回t/f。 表1 操作符 序号 MySQL数据库 GaussDB数据库 差异 1 <> 支持,但有差异。 MySQL支持索引,GaussDB不支持索引。 2 <=> 支持,但有差异。 MySQL支持索引,GaussDB不支持索引、hash连接和合并连接。
TABLE CREATE TABLE带CHECK约束的时候,MySQL8.0会生效,MySQL5.7只解析语法但不生效。GaussDB在此功能上同步MySQL8.0版本,且GaussDB CHECK约束可以引用其他列,而MySQL不能。 GaussDB 一个表中最多只能加32767个CHECK约束。
GUC参数group_concat_max_len有效范围是0-1073741823,最大值比MySQL小。 2 DEFAULT() 支持 字段默认值为数组形式,GaussDB返回数组形式,MySQL不支持数组类型。 GaussDB字段是隐藏列(比如xmin、cmin),default函数返回空值。
MySQL数据库兼容性B模式 MySQL数据库兼容性概述 数据类型 系统函数 操作符 字符集 排序规则 表达式 SQL 驱动 父主题: 主备版
SELECT、USAGE、UPDATE、ALTER、DROP、COMMENT MySQL中通过'dbname.*'表示模式层级的授权对象;在M-Compatibility中,使用'{DATABASE | SCHEMA} dbname'表示模式层级的授权对象。 MySQL中用户名为两部分:用户名@主机名;M-Compatibility当前仅支持用户名。
UNIX_TIMESTAMP() 支持 返回值与MySQL有差异,GaussDB返回的是numeric,MySQL返回的是int。 53 UTC_DATE() 支持 MySQL支持无括号调用,GaussDB不支持。MySQL入参整型值会按照一字节最大值255整数回绕。 MySQL入参只支持0-6整数,
词法语法解析按照字节流解析,当多字节字符中包含与'\', '\'', '\\'等符号一致的编码时,会导致与mysql行为不一致,建议暂时关闭转义符开关进行规避。 父主题: MySQL数据库兼容性M-Compatibility模式
SET 自定义变量长度的差异。例如: MySQL自定义变量名长度没有约束。 GaussDB自定义变量名长度不超过64字节,超过部分的变量名会截断并提示告警。 2 SET TRANSACTION语法兼容 SET TRANSACTION MySQL可以设置当前会话(session)和全
信息函数 表1 信息函数列表 序号 MySQ数据库 GaussDB数据库 差异 1 LAST_INSERT_ID() 支持 - 父主题: 系统函数
EXCHANGE PARTITION。MySQL自动增长列必须为索引第一个字段。 AUTO_INCREMENT = value语法,value必须为小于2^127的正数。MySQL不校验value。 当自增值已经达到字段数据类型的最大值时,继续自增将产生错误。MySQL有些场景产生错误或警告,有些场景仍自增为最大值。
其他函数 表1 其他函数列表 序号 MySQL数据库 GaussDB数据库 差异 1 DATABASE() 支持 - 2 UUID() 支持 - 3 UUID_SHORT() 支持 - 父主题: 系统函数
聚合函数 表1 聚合函数列表 序号 MySQL数据库 GaussDB数据库 差异 1 AVG() 支持,有差异 GaussDB中指定DINSTINCT且SQL语句包含GROUP BY子句时,不保证结果的顺序。 GaussDB中当expr中的列为BIT、BOOL、整数类型,且所有行
数值数据类型 表1 整数类型 序号 MySQL数据库 GaussDB数据库 差异 1 BOOL 支持,存在差异 输出格式:GaussDB中SELECT TRUE/FALSE输出结果为t/f,MySQL为1/0。 MySQL:BOOL/BOOLEAN类型实际映射为TINYINT类型。
驱动 JDBC 父主题: MySQL数据库兼容性B模式
认情况下会与MySQL有一定差异,需要设置GUC参数set standard_conforming_strings= off;的情况下,对于转义字符的场景才会与MySQL兼容,但是会产生非标准字符输入的warning告警,在转义字符中\t、\u与转义数字与MySQL有差异。JSO
BY子句中的列或聚合函数中使用的列。但是,MySQL支持对此行为的扩展,并允许HAVING引用列表中的SELECT列和外部子查询中的列。 29 SELECT后跟行表达式 SELECT MySQL不支持SELECT后跟行表达式,GaussDB支持SELECT后跟行表达式。 MySQL的行为: mysql> SELECT
务块中使用,MySQL无限制。 6 锁机制 锁机制 MySQL获取read锁后,当前会话无法进行写操作,M-Compatibility获取read锁后,当前会话可以进行写操作。 MySQL给表上锁后,读取其他表报错,M-Compatibility无限制。 MySQL同一会话中获取
为保留关键字,在MySQL中为非保留关键字,其差异为:在M-Compatibility模式下不可作为表名、列名、列别名、AS列别名、AS表别名、表别名、函数名和变量名,在MySQL中支持。 当关键字在M-Compatibility模式下为非保留关键字,在MySQL中为保留关键字,
GaussDB数据库兼容绝大多数MySQL的表达式,但存在部分差异。如未列出,表达式行为默认为GaussDB原生行为。 表1 表达式 序号 MySQL数据库 GaussDB数据库 1 用户自定义变量@var_name 部分支持 2 全局变量@@var_name 部分支持 父主题: MySQL数据库兼容性B模式
范围大于MySQL,但是越界仍然算无效日期。 大部分时间函数会告警并返回NULL,只有能通过cast正常转换的日期,才是正常合理的日期。 新框架下GaussDB的大部分日期时间函数与MySQL一致,一些函数的差异如下表所示: 表1 日期与和时间函数列表 序号 MySQL数据库 GaussDB数据库