文档

语法兼容性说明

更新时间:

本文将参照MySQL官网的语法内容,来说明在租户内执行相关语法时的兼容性信息。

语法兼容性说明

  • 对于使用PolarDB MySQL版高权限用户无法执行的语法,如ALTER INSTANCEALTER TABLESPACE等,在多租户模式下也无法执行。在下表中的是否兼容列标注为N,并添加备注信息。

  • 语句的执行结果与租户无关,如SHOW VARIABLESKILLSHOW ENGINES等,此类语句在下表中的是否兼容列标注为Y-无区分。

  • 语句的执行结果与租户有关,如SHOW DATABASECREATE DATABASECREATE USERALTER USER等,此类语句在下表中的是否兼容列标注为Y或N,并添加备注信息。

SQL种类

SQL语法

是否兼容

备注

数据定义语句

原子性DDL

Y

ALTER DATABASE

Y

ALTER EVENT

Y

ALTER FUNCTION

Y

ALTER INSTANCE

N

高权限账号无权限执行该语句。

ALTER LOGFILE GROUP

N

仅在NDB模式下支持使用该语句。

ALTER PROCEDURE

Y

ALTER SERVER

N

高权限账号无权限执行该语句。

ALTER TABLE

Y

ALTER TABLESPACE

N

高权限账号无权限执行该语句。

ALTER VIEW

Y

CREATE DATABASE

Y

CREATE EVENT

Y

CREATE FUNCTION

Y

CREATE INDEX

Y

CREATE LOGFILE GROUP

N

仅在NDB模式下支持使用该语句。

CREATE PROCEDURE

CREATE FUNCTION

Y

CREATE SERVER

N

高权限账号无权限执行该语句。

CREATE SPATIAL REFERENCE SYSTEM

N

高权限账号无权限执行该语句。

CREATE TABLE

Y

CREATE TABLESPACE

N

高权限账号无权限执行该语句。

CREATE TRIGGER

Y

CREATE VIEW

Y

DROP DATABASE

Y

DROP EVENT

Y

DROP FUNCTION

Y

DROP INDEX

Y

DROP LOGFILE GROUP

N

仅在NDB模式下支持使用该语句。

DROP PROCEDURE

DROP FUNCTION

Y

DROP SERVER

N

高权限账号无权限执行该语句。

DROP SPATIAL REFERENCE SYSTEM

N

高权限账号无权限执行该语句。

DROP TABLE

Y

DROP TABLESPACE

N

高权限账号无权限执行该语句。

DROP TRIGGER

Y

DROP VIEW

Y

RENAME TABLE

Y

TRUNCATE TABLE

Y

数据操作语句

CALL

Y

DELETE

Y

DO

Y

EXCEPT子句

N

PolarDB MySQL版802版本不支持使用此语法。

HANDLER

Y

IMPORT TABLE

N

高权限账号无权限执行该语句。

INSERT

Y

INTERSECT子句

N

PolarDB MySQL版802版本不支持使用此语法。

LOAD DATA

N

高权限账号无权限执行该语句,即无权限加载服务器端的文件。

LOAD XML

N

高权限账号无权限执行该语句,即无权限加载服务器端的文件。

含有括号的表达式

Y

REPLACE

Y

SELECT

Y

含有UNION、INTERSECT和EXCEPT的SQL语句

Y

子查询

Y

TABLE

N

PolarDB MySQL版802版本不支持使用此语法。

UPDATE

Y

UNION子句

Y

VALUES

N

PolarDB MySQL版802版本不支持使用此语法。

WITH(公共表表达式)

Y

事务和锁定语句

START TRANSACTION、COMMIT和ROLLBACK语句

Y-无区分

无法回滚的语句

Y-无区分

隐式提交的语句

Y-无区分

SAVEPOINT、ROLLBACK TO SAVEPOINT和RELEASE SAVEPOINT语句

Y-无区分

LOCK INSTANCE FOR BACKUP和UNLOCK INSTANCE语句

N

高权限账号无权限执行该语句。

LOCK TABLES和UNLOCK TABLES

Y

SET TRANSACTION

Y-无区分

XA事务

Y-无区分

复制语句:用于控制源服务器的SQL语句

PURGE BINARY LOGS

N

高权限账号无权限执行该语句。

RESET MASTER

Y-无区分

仅当租户下的用户拥有reload权限时,支持使用该语句。不建议授予此权限。

SET sql_log_bin

N

高权限账号无权限执行该语句。

复制语句:用于控制副本服务器的SQL语句。

CHANGE MASTER TO

N

高权限账号无权限执行该语句。

CHANGE REPLICATION FILTER

N

高权限账号无权限执行该语句。

CHANGE REPLICATION SOURCE TO

N

高权限账号无权限执行该语句。

RESET REPLICA

Y-无区分

仅当租户下的用户拥有reload权限时,支持使用该语句。不建议授予此权限。

RESET SLAVE

Y-无区分

仅当租户下的用户拥有reload权限时,支持使用该语句。不建议授予此权限。

START REPLICA

N

高权限账号无权限执行该语句。

START SLAVE

N

高权限账号无权限执行该语句。

STOP REPLICA

N

高权限账号无权限执行该语句。

STOP SLAVE

N

高权限账号无权限执行该语句。

复制语句:用于控制组复制的SQL语句。

START GROUP_REPLICATION

N

高权限账号无权限执行该语句。

STOP GROUP_REPLICATION

N

高权限账号无权限执行该语句。

预处理语句

PREPARE

Y

EXECUTE

Y

DEALLOCATE PREPARE

Y

复合语句

复合语句

Y-无区分

租户模式下支持使用该语句,存储过程中的SQL语句与具体的租户无关。

数据库管理报表:账户管理报表

ALTER USER

Y

CREATE ROLE

Y

租户模式下,可以创建租户下的role。但目前高权限账户不支持 grant role。

CREATE USER

Y

DROP ROLE

Y

租户模式下,可以创建租户下的role。但目前高权限账户不支持 grant role。

DROP USER

Y

GRANT

Y

RENAME USER

Y

REVOKE

Y

SET DEFAULT ROLE

Y

SET PASSWORD

Y

SET ROLE

Y

数据库管理语句:资源组管理语句

资源组管理语句

N

线上暂不支持开启resource group。

数据库管理语句:表维护语句

ANALYZE TABLE

Y

CHECK TABLE

Y

CHECKSUM TABLE

Y

OPTIMIZE TABLE

Y

REPAIR TABLE

Y

数据库管理语句:组件、插件和可加载函数语句

可加载函数的CREATE FUNCTION语句

Y

拥有MySQL库中表的INSERT或DELETE权限时,支持使用该语句。但不建议授予租户下用户对应的权限。

可加载函数的DROP FUNCTION语句

Y

INSTALL COMPONENT

Y-无区分

INSTALL PLUGIN

Y-无区分

UNINSTALL COMPONENT

Y-无区分

UNINSTALL PLUGIN

Y-无区分

数据库管理语句

CLONE

N

高权限账号无权限执行该语句。

数据库管理语句:SET语句

SET语法

Y-无区分

仅支持更改当前Session中的变量。

SET CHARACTER

Y-无区分

SET NAMES

Y-无区分

数据库管理语句:SHOW语句

SHOW BINARY LOGS

Y-无区分

仅当拥有REPLICATION CLIENT权限的用户支持使用该语句。

SHOW BINLOG EVENTS

Y-无区分

仅当拥有REPLICATION SLAVE权限的用户支持使用该语句。

SHOW CHARACTER SET

Y-无区分

SHOW COLLATION

Y-无区分

SHOW COLUMNS

Y

SHOW CREATE DATABASE

Y

SHOW CREATE EVENT

Y

SHOW CREATE PROCEDURE

Y

SHOW CREATE TABLE

Y

SHOW CREATE TRIGGER

Y

SHOW CREATE USER

Y

SHOW CREATE VIEW

Y

SHOW DATABASES

Y

SHOW ENGINE

Y-无区分

仅当拥有PROCESS权限的用户支持使用该语句。但不建议对租户下的用户授予该权限。

SHOW ENGINES

Y-无区分

SHOW ERRORS

Y-无区分

SHOW EVENTS

Y

使用SHOW EVENT语句进行查询时,去除数据库和用户上的租户信息。

SHOW FUNCTION CODE

Y

SHOW FUNCTION STATUS

Y-无区分

不对租户信息进行过滤。

SHOW GRANTS

Y

仅当拥有SELECT权限的用户支持使用该语句。

SHOW INDEX

Y

SHOW MASTER STATUS

Y-无区分

仅当拥有REPLICATION CLIENT权限的用户支持使用该语句。

SHOW OPEN TABLES

Y

SHOW PLUGINS

Y-无区分

SHOW PRIVILEGES

Y-无区分

SHOW PROCEDURE CODE

Y

SHOW PROCEDURE STATUS

Y-无区分

不对租户信息进行过。

SHOW PROCESSLIST

Y

SHOW PROFILE

Y-无区分

SHOW PROFILES

Y-无区分

SHOW RELAYLOG EVENTS

N

高权限账号无权限执行该语句。

SHOW REPLICAS

N

PolarDB MySQL版802版本不支持使用此语法。

SHOW SLAVE HOSTS | SHOW REPLICAS

N

PolarDB MySQL版802版本不支持使用此语法。

SHOW REPLICA STATUS

N

PolarDB MySQL版802版本不支持使用此语法。

SHOW SLAVE | REPLICA STATUS

Y-无区分

仅当拥有REPLICATION CLIENT权限的用户支持使用该语句。

SHOW STATUS

Y-无区分

SHOW TABLE STATUS

Y

SHOW TABLES

Y

SHOW TRIGGERS

Y

SHOW VARIABLES

Y-无区分

SHOW WARNINGS

Y-无区分

数据库管理语句:其他声明

BINLOG

N

高权限账号无权限执行该语句。

CACHE INDEX

Y

FLUSH

Y

大部分FLUSH操作需要reload权限,但不建议授予租户内的用户reload权限。

KILL

Y-无区分

LOAD INDEX INTO CACHE

Y

RESET

Y-无区分

仅当拥有reload权限的用户支持使用该语句。

RESET PERSIST

N

高权限账号无权限执行该语句。

RESTART

N

高权限账号无权限执行该语句。

SHUTDOWN

N

高权限账号无权限执行该语句。

实用程序语句

DESCRIBE

Y

EXPLAIN

Y

HELP

Y-无区分

USE

Y