检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
SQL GaussDB数据库兼容绝大多数MySQL语法,但存在部分差异。本章节介绍GaussDB数据库当前支持的MySQL语法。 部分关键字在MySQL可以做标识符但M-Compatibility不可以或存在限制,以下为表1。 表1 限制做标识符列表 关键字类型 关键字 约束 保留(可以是类型或函数)
数据库对象 表1 schema对象 序号 Oracle数据库 GaussDB数据库 差异 1 分析视图 不支持 - 2 属性维度 不支持 - 3 集群 支持 - 4 约束 支持 - 5 数据库链接 支持 - 6 数据库触发器 支持 - 7 尺寸 支持 - 8 外部过程库 不支持 -
数据库对象 表1 schema对象 序号 Oracle数据库 GaussDB数据库 差异 1 分析视图 不支持 - 2 属性维度 不支持 - 3 集群 支持 - 4 约束 支持 - 5 数据库链接 支持 - 6 数据库触发器 支持 - 7 尺寸 支持 - 8 外部过程库 不支持 -
其它函数 序号 Oracle数据库 GaussDB数据库 1 聚合函数 支持 2 分析函数 支持 3 对象引用函数 不支持 4 模型函数 不支持 5 OLAP函数 不支持 6 数据盒功能函数 不支持 7 关于用户定义的函数 支持 表1 聚合函数 序号 Oracle数据库 GaussDB数据库
MySQL数据库兼容性M-Compatibility模式 MySQL数据库兼容性概述 数据类型 系统函数 操作符 字符集 排序规则 事务 SQL 计划外应用无损透明 父主题: 集中式版
DDL 序号 MySQL数据库功能概述 详细语法说明 GaussDB数据库实现差异 1 建表和修改表时支持创建主键、UNIQUE索引、外键约束 ALTER TABLE、CREATE TABLE GaussDB当前不支持UNIQUE INDEX|KEY index_name语法,使用UNIQUE
MySQL数据库兼容MySQL模式 MySQL数据库兼容性概述 数据类型 系统函数 操作符 字符集 排序规则 SQL 驱动 父主题: 分布式版
DML 表1 DML语法兼容介绍 序号 概述 详细语法说明 差异 1 DELETE支持ORDER BY和LIMIT DELETE - 2 UPDATE支持ORDER BY和LIMIT UPDATE - 3 REPLACE INTO语法兼容 REPLACE 时间类型初始值的差异。例如:
强制转换函数 表1 强制转换函数列表 序号 MySQL数据库 GaussDB数据库 差异 1 CAST() 支持 由于函数执行机制不同,flags无法传递给内层函数,在cast函数嵌套其他函数(如greatest、least等)时,内层函数返回小于1的值,结果与MySQL不一致。
系统函数 兼容函数分为:单行函数、用户自定义函数、AGG函数、分析函数、对象引用函数、模型函数、OLAP函数。 单行函数 其它函数 父主题: 集中式版
SQL语句中的引用架构对象和部件的语法 表1 对象引用 序号 Oracle数据库 GaussDB数据库 1 引用对象的一般语法 支持 2 解析对象的引用 支持 3 引用外部模式对象 支持 4 引用外部数据库对象 支持 5 引用表和索引分区和子分区 支持 父主题: SQL的基本元素
DCL 表1 DCL语法兼容介绍 序号 概述 详细语法说明 差异 1 SET NAMES指定COLLATE字句 SET [ SESSION | LOCAL ] NAMES {'charset_name' [COLLATE 'collation_name'] | DEFAULT};
系统函数 兼容函数分为:单行函数、用户自定义函数、AGG函数、分析函数、对象引用函数、模型函数、OLAP函数。 单行函数 其它函数 父主题: 分布式版
注释 表1 comment 序号 Oracle数据库 GaussDB数据库 差异 1 斜杠和星号(/*) 支持 - 2 两个连字符(--) 支持 - 3 COMMENT命令 支持 - 4 HINT 支持,有差异 GaussDB不支持'--+'hint形式。 具体信息请参见《开发指南》中“SQL调优指南
动态SQL 表1 动态SQL语句执行方式 序号 Oracle数据库 GaussDB数据库 差异 1 EXECUTE IMMEDIATE 支持,有差异 GaussDB通过dynamic_sql_compat参数控制同名变量是否读取同一参数,并且检查调用存储过程时绑定参数出入参类型是否与语句参数类型一致。
单行函数 序号 Oracle数据库 GaussDB数据库 1 数值函数 支持,有差异 2 返回字符值的字符函数 支持,有差异 3 返回数值的字符函数 支持,有差异 4 字符集函数 不支持 5 Collation函数 不支持 6 日期时间函数 支持,有差异 7 通用比较函数 支持,有差异
静态SQL 表1 静态查询 SQL语句 序号 Oracle数据库 GaussDB数据库 差异 1 SELECT 支持,有差异 GaussDB和Oracle在某些场景下有不同。 GaussDB中不同事务中的共享锁在如下场景中不会互相阻塞: SELECT FOR SHARE - SELECT
分布式版 Oracle数据库兼容性概述 SQL的基本元素 伪列 操作符 表达式 条件 常见的SQL DDL子句 SQL查询和子查询 PL/SQL语言 系统函数 系统视图 高级包 父主题: 与Oracle兼容性说明
DDL 表1 DDL语法兼容介绍 序号 概述 详细语法说明 差异 1 建表和修改表时支持创建主键、UNIQUE索引 ALTER TABLE、CREATE TABLE GaussDB当前不支持UNIQUE INDEX|KEY index_name语法,使用UNIQUE INDEX|KEY
字符串数据类型 表1 字符串数据类型 序号 MySQL数据库 GaussDB数据库 差异 1 CHAR(M) 支持,存在差异 输入格式: 输入二进制或十六进制字符串,GaussDB输出为十六进制,MySQL中根据ASCII码表转义,无法转义的输出为空。 2 VARCHAR(M) 支持,存在差异