MySQL兼容性说明
openGauss的MySQL兼容性主要通过Dolphin插件和内核实现。Dolphin插件的说明可参考Dolphin插件介绍。在openGauss内核中实现的MySQL兼容性特性见下表。
表 1 在openGauss内核中实现的MySQL兼容性特性列表
| 分类 | 概述 | 详细说明链接 |
|---|---|---|
| DDL | CREATE DATABASE支持IF NOT EXISTS选项 | CREATE DATABASE |
| DDL | CREATE SCHEMA支持IF NOT EXISTS选项 | CREATE SCHEMA |
| DDL | ALTER USER支持IF EXISTS选项 | ALTER USER |
| DDL | ALTER VIEW支持DEFINER选项 | ALTER VIEW |
| DDL | CREATE VIEW支持DEFINER选项 | CREATE VIEW |
| DDL | 支持在创建、修改对象等语句中指定COMMENT选项 | ALTER FUNCTION、 ALTER PROCEDURE、 ALTER TABLE、 CREATE FUNCTION、 CREATE INDEX、 CREATE PROCEDURE、 CREATE TABLE、 CREATE TABLE PARTITION、 CREATE TABLE SUBPARTITION |
| DDL | CREATE TABLE支持创建主键、UNIQUE索引、外键约束 | CREATE TABLE |
| DDL | ALTER TABLE支持创建主键、UNIQUE索引、外键约束 | ALTER TABLE |
| DDL | 支持自增列 | ALTER TABLE、 CREATE TABLE |
| DDL | 支持前缀索引 | CREATE INDEX |
| DDL | 支持指定字符集与排序规则 | ALTER SCHEMA、 CREATE SCHEMA、 ALTER TABLE、 CREATE TABLE |
| DDL | 修改表时支持在表第一列前面或者在指定列后面添加列 | ALTER TABLE |
| DDL | 修改列名称/定义语法兼容 | ALTER TABLE |
| DDL | 定时任务EVENT语法兼容 | ALTER EVENT、 CREATE EVENT、 DROP EVENT、 SHOW EVENTS |
| DDL | 创建分区表语法兼容 | CREATE TABLE PARTITION、 CREATE TABLE SUBPARTITION |
| DML | DELETE支持从多个表中删除数据 | DELETE |
| DML | DELETE支持ORDER BY和LIMIT | DELETE |
| DML | DELETE支持从指定分区(或子分区)删除数据 | DELETE |
| DML | INSERT VALUES的右值表达式支持字段引用 | INSERT |
| DML | UPDATE支持从多个表中更新数据 | UPDATE |
| DML | UPDATE支持ORDER BY和LIMIT | UPDATE |
| DML | SELECT INTO语法兼容 | SELECT |
| DCL | 支持在会话中set用户自定义变量 | SET |
| DCL | 支持set全局变量增强 | SET |
| DCL | SET TRANSACTION语法兼容 | SET TRANSACTION |
| 数据类型 | 支持NVARCHAR类型 | 字符类型 |
| 数据类型 | 支持SET数据类型 | SET类型 |
| 函数和操作符 | 支持安全等于操作符<=> | 简单表达式 |
| 函数和操作符 | 支持group_concat函数 | 聚集函数 |
| 函数和操作符 | 支持LAST_INSERT_ID函数 | SEQUENCE函数 |
| 函数和操作符 | 支持row_count()函数 | row_count()函数 |
| 函数和操作符 | 支持安全函数aes_decrypt/aes_encrypt | 安全函数 |
| 函数和操作符 | 支持字符处理函数sha/sha1/sha2 | 字符处理函数和操作符 |
| 控制语句 | 支持label:loop/while/repeat循环语法 | 循环语句 |
| DDL | 支持create table as语法中定义表字段属性 | CREATE TABLE AS |
| 优化器hint | 支持force | use index语法指定扫描表使用的索引 |
| 声明语法 | 支持declare handler语法 | 错误捕获语句 |
| 声明语法 | 支持declare condition语法和declare cursor语法 | 基本结构 |
| DCL | 支持用户自定义变量在SQL语句中赋值 | SET |
| DCL | 支持drop trigger语法 | drop trigger |
| SQL语法 | 支持delimiter定义结束符 | DELIMITER |
