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 FUNCTIONALTER PROCEDUREALTER TABLECREATE FUNCTIONCREATE INDEXCREATE PROCEDURECREATE TABLECREATE TABLE PARTITIONCREATE TABLE SUBPARTITION

DDL

CREATE TABLE支持创建主键、UNIQUE索引、外键约束

CREATE TABLE

DDL

ALTER TABLE支持创建主键、UNIQUE索引、外键约束

ALTER TABLE
DDL支持自增列ALTER TABLECREATE TABLE
DDL支持前缀索引CREATE INDEX
DDL支持指定字符集与排序规则ALTER SCHEMACREATE SCHEMAALTER TABLECREATE TABLE
DDL修改表时支持在表第一列前面或者在指定列后面添加列ALTER TABLE
DDL修改列名称/定义语法兼容ALTER TABLE
DDL定时任务EVENT语法兼容ALTER EVENTCREATE EVENTDROP EVENTSHOW EVENTS
DDL创建分区表语法兼容CREATE TABLE PARTITIONCREATE 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
DMLSELECT INTO语法兼容SELECT

DCL

支持在会话中set用户自定义变量

SET

DCL

支持set全局变量增强

SET
DCLSET 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语法指定扫描表使用的索引

INDEX_HINTS

声明语法

支持declare handler语法

错误捕获语句

声明语法

支持declare condition语法和declare cursor语法

基本结构

DCL

支持用户自定义变量在SQL语句中赋值

SET

DCL

支持drop trigger语法

drop trigger

SQL语法

支持delimiter定义结束符

DELIMITER