检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
概述 MySQL兼容性MySQL模式概述 MySQL兼容性M-Compatibility模式概述
TABLE语法 SHOW 用户权限验证与MySQL存在差异。 GaussDB中需要拥有指定表所在Schema的USAGE权限和指定表的任意表级权限。 MySQL中需要拥有指定表的任意表级权限(除GRANT OPTION)。 返回的建表语句与MySQL存在差异。 GaussDB中索引以CREATE
为保留关键字,在MySQL中为非保留关键字,其差异为:在M-Compatibility模式下不可作为表名、列名、列别名、AS列别名、AS表别名、表别名、函数名和变量名,在MySQL中支持。 当关键字在M-Compatibility模式下为非保留关键字,在MySQL中为保留关键字,
等系统表的权限相关字段查询权限信息。 MySQL中数据库、表、列被删除时,相关的授权信息在系统表中依然保留,如果重新创建同名对象用户依然拥有权限;M-Compatibility中当数据库、表、列被删除时,相关的授权信息会被删除,在重新创建同名对象后需要重新授权。 MySQL在授予
TABLE语法 SHOW 用户权限验证与MySQL存在差异。 GaussDB中需要拥有指定表所在Schema的USAGE权限和指定表的任意表级权限。 MySQL中需要拥有指定表的任意表级权限(除GRANT OPTION)。 返回的建表语句与MySQL存在差异。 GaussDB中索引以CREATE
GaussDB与MySQL的JDBC接口定义一致,均遵循业界规范,本章节主要介绍GaussDB数据库的MySQL兼容性B模式与MySQL数据库JDBC接口的行为差异。 获取结果集中的数据 ResultSet对象提供了丰富的方法,以获取结果集中的数据。获取数据常用的方法如表1所示,其他方法请参考JDK官方文档。
AS语法创建出的表,使用DESC查看表结构时,存在以下差异: MySQL 8.0中: 对于表中的列类型(Type)为BIGINT类型或INT类型时不显示宽度。 对于表中的列类型(Type)的宽度为0时,显示宽度,如binary(0)。 GaussDB中: 对于表中的列类型(Typ
SET 自定义变量长度的差异。例如: MySQL自定义变量名长度没有约束。 GaussDB自定义变量名长度不超过64字节,超过部分的变量名会截断并提示告警。 SET TRANSACTION语法兼容 SET TRANSACTION MySQL可以设置当前会话(session)和全局
等系统表的权限相关字段查询权限信息。 MySQL中数据库、表、列被删除时,相关的授权信息在系统表中依然保留,如果重新创建同名对象用户依然拥有权限;M-Compatibility中当数据库、表、列被删除时,相关的授权信息会被删除,在重新创建同名对象后需要重新授权。 MySQL在授予
GaussDB和MySQL在正则表达式中支持的元字符有所不同。例如,GaussDB支持“\d”表示数字,“\w”表示字母、数字和下划线,“\s”表示空格,而MySQL不支持这些元字符,MySQL会把这些字符当成正常字符串。 GaussDB中“\b”可以与“\\b”匹配,MySQL会匹配失败。
MySQL兼容性M-Compatibility模式 数据类型 系统函数 操作符 字符集 排序规则 事务 SQL 驱动
SQL兼容性概述 GaussDB数据库兼容绝大多数MySQL语法,但存在部分差异。本章节介绍GaussDB数据库当前支持的MySQL语法。 部分关键字在MySQL可以做标识符但在M-Compatibility不可以或存在限制,如表1所示。 表1 受限标识符列表 关键字类型 关键字 约束 保留(可以是类型或函数)
流量控制函数 日期和时间函数 字符串函数 强制转换函数 加密函数 信息函数 JSON函数 聚合函数 数字操作函数 其他函数 父主题: MySQL兼容性B模式
执行结果为true,与MySQL结果相反:根据规则选定的公共类型为int类型,因此将左表达式'1970-01-01'转换为int类型与列表中的表达式转换为int类型后的值依次比较。 -- '1970-01-01'和'1970-01-02'转换为int类型时都为1970(兼容MySQL模式下,转
GaussDB和MySQL在正则表达式中支持的元字符有所不同。例如,GaussDB支持“\d”表示数字,“\w”表示字母、数字和下划线,“\s”表示空格,而MySQL不支持这些元字符,MySQL会把这些字符当成正常字符串。 GaussDB中“\b”可以与“\\b”匹配,MySQL会匹配失败。
ty获取read锁后,当前会话可以进行写操作。 MySQL给表上锁后,读取其他表报错,M-Compatibility无限制。 MySQL同一会话中获取同一个表的锁,会自动释放上一个锁,并提交事务,M-Compatibility无该机制。 M-Compatibility中LOCK
GaussDB数据库支持指定数据库、模式、表或列的字符集,支持的范围如下。 表1 字符集列表 MySQL数据库 GaussDB数据库 utf8mb4 支持 gbk 支持 gb18030 支持 utf8 支持 binary 支持 父主题: MySQL兼容性B模式
TABLE GaussDB分区名使用双引号(需要设置SQL_MODE为ANSI_QUOTES)或反引号时是区分大小写的,MySQL不区分。 MySQL标识符长度限制为64字符,而GaussDB标识符长度限制为63字节。超过标识符的长度限制后,MySql报错,GaussDB会对标识符截断并告警。
TABLE GaussDB分区名使用双引号(需要设置SQL_MODE为ANSI_QUOTES)或反引号时是区分大小写的,MySQL不区分。 MySQL标识符长度限制为64字符,而GaussDB标识符长度限制为63字节。超过标识符的长度限制后,MySql报错,GaussDB会对标识符截断并告警。
DOUBLE)将表达式转换为浮点类型,MySQL 5.7版本不支持此转换。 GaussDB不支持使用CAST(expr AS JSON)将表达式转换为JSON。 对于CAST嵌套子查询场景,如果子查询语句返回的是FLOAT类型,GaussDB返回的是准确的数值,MySQL 5.7版本