更新时间:2026-07-30 GMT+08:00
分享

语法兼容性说明

操作场景

本章节基于MySQL官方语法规范,说明各语法在多租户下执行的兼容性情况。

语法兼容性说明

  • 对于使用高权限用户无法执行的语法,如ALTER INSTANCE、ALTER TABLESPACE等,在多租户模式下也无法执行。在下表中的是否兼容列标注为N,并添加备注信息。
  • 语句的执行结果与租户无关,如SHOW VARIABLES、KILL、SHOW ENGINES等,此类语句在下表中的是否兼容列标注为Y-无区分。
  • 语句的执行结果与租户有关,如SHOW DATABASE、CREATE DATABASE、CREATE USER、ALTER USER等,此类语句在下表中的是否兼容列标注为Y或N,并添加备注信息。
表1 语法兼容性说明

SQL种类

SQL语法

TaurusDB是否兼容

TaurusDB备注

数据定义语句

原子性DDL

Y

语法作用的对象按照租户隔离。

ALTER DATABASE

Y

  • ALTER DATABASE ... TENANT语法用于将数据库分配给租户,普通租户不可执行;
  • 语法作用的对象按照租户隔离。

ALTER EVENT

Y

语法作用的对象按照租户隔离。

ALTER FUNCTION

Y

语法作用的对象按照租户隔离。

ALTER INSTANCE

N

多租户模式下TaurusDB不支持该语法。

ALTER LOGFILE GROUP

N

TaurusDB不支持NDB模式。

ALTER PROCEDURE

Y

语法作用的对象按照租户隔离。

ALTER SERVER

Y

普通租户用户需被授予SUPER权限方可执行。

ALTER TABLE

Y

语法作用的对象按照租户隔离。

ALTER TABLESPACE

N

多租户模式下TaurusDB不支持该语法。

ALTER VIEW

Y

语法作用的对象按照租户隔离。

CREATE DATABASE

Y

数据库名自动附加租户后缀,普通租户仅可创建自己租户下的数据库。

CREATE EVENT

Y

数据库名自动附加租户后缀,普通租户仅可见自己租户下的数据库。

CREATE FUNCTION

Y

语法作用的对象按照租户隔离。

CREATE INDEX

Y

语法作用的对象按照租户隔离。

CREATE LOGFILE GROUP

N

TaurusDB不支持NDB模式。

CREATE PROCEDURE

Y

语法作用的对象按照租户隔离。

CREATE SERVER

Y

普通租户用户需被授予SUPER权限方可执行。

CREATE SPATIAL REFERENCE SYSTEM

Y

普通租户用户需被授予SUPER权限方可执行。

CREATE TABLE

Y

语法作用的对象按照租户隔离。

CREATE TABLESPACE

N

多租户模式下TaurusDB不支持该语法。

CREATE TRIGGER

Y

语法作用的对象按照租户隔离。

CREATE VIEW

Y

语法作用的对象按照租户隔离。

DROP DATABASE

Y

数据库名自动附加租户后缀,普通租户仅可删除自己租户下的数据库。

DROP EVENT

Y

数据库名自动附加租户后缀,普通租户仅可删除自己租户下的数据库。

DROP FUNCTION

Y

语法作用的对象按照租户隔离。

DROP INDEX

Y

语法作用的对象按照租户隔离。

DROP LOGFILE GROUP

N

TaurusDB不支持NDB模式。

DROP PROCEDURE

Y

语法作用的对象按照租户隔离。

DROP SERVER

Y

普通租户用户需被授予SUPER权限方可执行。

DROP SPATIAL REFERENCE SYSTEM

Y

普通租户用户需被授予SUPER权限方可执行。

DROP TABLE

Y

语法作用的对象按照租户隔离。

DROP TABLESPACE

N

多租户模式下TaurusDB不支持该语法。

DROP TRIGGER

Y

语法作用的对象按照租户隔离。

DROP VIEW

Y

语法作用的对象按照租户隔离。

RENAME TABLE

Y

语法作用的对象按照租户隔离。

TRUNCATE TABLE

Y

语法作用的对象按照租户隔离。

数据操作语句

CALL

Y

语法作用的对象按照租户隔离。

DELETE

Y

语法作用的对象按照租户隔离。

DO

Y-无区分

不涉及租户隔离。

EXCEPT子句

N

TaurusDB不支持使用此语法。

HANDLER

Y

语法作用的对象按照租户隔离。

IMPORT TABLE

N

多租户模式下TaurusDB不支持该语法。

INSERT

Y

语法作用的对象按照租户隔离。

INTERSECT子句

N

TaurusDB不支持使用此语法。

LOAD DATA

Y

LOAD DATA LOCAL不受租户限制;非LOCAL方式需FILE权限,不建议授予普通租户用户FILE权限。

LOAD XML

Y

LOAD XML LOCAL不受租户限制;非LOCAL方式需FILE权限,不建议授予普通租户用户FILE权限。

含有括号的表达式

Y

语法作用的对象按照租户隔离。

REPLACE

Y

语法作用的对象按照租户隔离。

SELECT

Y

语法作用的对象按照租户隔离。

子查询

Y

语法作用的对象按照租户隔离。

TABLE

Y

语法作用的对象按照租户隔离。

UPDATE

Y

语法作用的对象按照租户隔离。

UNION子句

Y

语法作用的对象按照租户隔离。

VALUES

Y

语法作用的对象按照租户隔离。

WITH(公共表表达式)

Y

语法作用的对象按照租户隔离。

事务和锁定语句

START TRANSACTION、COMMIT和ROLLBACK语句

Y-无区分

事务语句在多租户下无区分,行为与标准MySQL一致。

无法回滚的语句

Y-无区分

无法回滚的语句在多租户下无区分,行为与标准MySQL一致。

隐式提交的语句

Y-无区分

隐式提交的语句在多租户下无区分,行为与标准MySQL一致。

SAVEPOINT、ROLLBACK TO SAVEPOINT和RELEASE SAVEPOINT语句

Y-无区分

SAVEPOINT语句在多租户下无区分,行为与标准MySQL一致。

LOCK INSTANCE FOR BACKUP和UNLOCK INSTANCE语句

N

多租户模式下TaurusDB不支持该语法。

LOCK TABLES和UNLOCK TABLES

Y

LOCK TABLES按租户DATABASE隔离,仅可锁定同租户下的表。

SET TRANSACTION

Y-无区分

SET TRANSACTION在多租户下无区分,行为与标准MySQL一致。

XA事务

Y-无区分

XA事务在多租户下无区分,行为与标准MySQL一致。

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

PURGE BINARY LOGS

Y

普通租户用户需被授予SUPER或BINLOG_ADMIN权限方可执行。

RESET MASTER

N

多租户模式下TaurusDB不支持该语法。

SET sql_log_bin

Y

普通租户用户需被授予SUPER或SYSTEM_VARIABLES_ADMIN或SESSION_VARIABLES_ADMIN权限方可执行。

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

CHANGE MASTER TO

Y

普通租户用户需被授予SUPER或REPLICATION_SLAVE_ADMIN权限方可执行。

CHANGE REPLICATION FILTER

Y

普通租户用户需被授予SUPER或REPLICATION_SLAVE_ADMIN权限方可执行。

CHANGE REPLICATION SOURCE TO

N

TaurusDB不支持CHANGE REPLICATION SOURCE TO语法,请使用CHANGE MASTER TO代替。

RESET REPLICA

N

多租户模式下TaurusDB不支持该语法。

RESET SLAVE

N

多租户模式下TaurusDB不支持该语法。

START REPLICA

Y

普通租户用户需被授予SUPER或REPLICATION_SLAVE_ADMIN权限方可执行。

START SLAVE

Y

普通租户用户需被授予SUPER或REPLICATION_SLAVE_ADMIN权限方可执行。

STOP REPLICA

Y

普通租户用户需被授予SUPER或REPLICATION_SLAVE_ADMIN权限方可执行。

STOP SLAVE

Y

普通租户用户需被授予SUPER或REPLICATION_SLAVE_ADMIN权限方可执行。

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

START GROUP_REPLICATION

Y

普通租户用户需被授予SUPER或GROUP_REPLICATION_ADMIN权限方可执行。

STOP GROUP_REPLICATION

Y

普通租户用户需被授予SUPER或GROUP_REPLICATION_ADMIN权限方可执行。

预处理语句

PREPARE

Y

语法作用的对象按照租户隔离。

EXECUTE

Y

语法作用的对象按照租户隔离。

DEALLOCATE PREPARE

Y

语法作用的对象按照租户隔离。

复合语句

复合语句

Y

语法作用的对象按照租户隔离。

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

ALTER USER

Y

语法作用的对象按照租户隔离,仅可操作同租户下的用户。

CREATE ROLE

Y

CREATE ROLE在多租户模式下创建当前租户下的role。

CREATE USER

Y

语法作用的对象按照租户隔离,创建的用户归属于当前租户。

DROP ROLE

Y

DROP ROLE在多租户模式下删除当前租户下的role。

DROP USER

Y

语法作用的对象按照租户隔离,仅可删除同租户下的用户。

GRANT

Y

语法作用的对象按照租户隔离,仅可授予同租户下的权限。

RENAME USER

Y

语法作用的对象按照租户隔离,仅可操作同租户下的用户。

REVOKE

Y

语法作用的对象按照租户隔离,仅可撤销同租户下的权限。

SET DEFAULT ROLE

Y

SET DEFAULT ROLE在多租户模式下仅可设置当前租户下的role。

SET PASSWORD

Y

语法作用的对象按照租户隔离,仅可修改同租户下的用户密码。

SET ROLE

Y

SET ROLE语句的作用对象在多租户模式下仅可设置当前租户下的role。

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

资源组管理语句

N

暂不支持开启resource group。

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

ANALYZE TABLE

Y

语法作用的对象按照租户隔离,仅可操作同租户下的表。

CHECK TABLE

Y

语法作用的对象按照租户隔离,仅可操作同租户下的表。

CHECKSUM TABLE

Y

语法作用的对象按照租户隔离,仅可操作同租户下的表。

OPTIMIZE TABLE

Y

语法作用的对象按照租户隔离,仅可操作同租户下的表。

REPAIR TABLE

Y

语法作用的对象按照租户隔离,仅可操作同租户下的表。

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

可加载函数的CREATE FUNCTION语句

Y

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

可加载函数的DROP FUNCTION语句

Y

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

INSTALL COMPONENT

N

多租户模式下TaurusDB不支持该语法。

INSTALL PLUGIN

N

多租户模式下TaurusDB不支持该语法。

UNINSTALL COMPONENT

N

多租户模式下TaurusDB不支持该语法。

UNINSTALL PLUGIN

N

多租户模式下TaurusDB不支持该语法。

数据库管理语句

CLONE

N

多租户模式下TaurusDB不支持该语法。

数据库管理语句:SET语句

SET语法

Y

仅支持更改当前Session中的变量,全局变量需SYSTEM_VARIABLES_ADMIN权限。

SET CHARACTER

Y-无区分

SET CHARACTER在多租户下无区分,仅影响当前Session。

SET NAMES

Y-无区分

SET NAMES在多租户下无区分,仅影响当前Session。

数据库管理语句:SHOW语句

SHOW BINARY LOGS

Y

拥有SUPER或REPLICATION CLIENT权限的用户方可执行。

SHOW BINLOG EVENTS

N

需要REPLICATION_SLAVE权限,多租户模式下TaurusDB不支持该语法。

SHOW CHARACTER SET

Y-无区分

SHOW CHARACTER SET在多租户下无区分。

SHOW COLLATION

Y-无区分

SHOW COLLATION在多租户下无区分。

SHOW COLUMNS

Y

语法作用的对象按照租户隔离。

SHOW CREATE DATABASE

Y

语法作用的对象按照租户隔离。

SHOW CREATE EVENT

Y

语法作用的对象按照租户隔离。

SHOW CREATE FUNCTION

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 ENGINES在多租户下无区分。

SHOW ERRORS

Y-无区分

SHOW ERRORS仅显示当前Session的错误信息,在多租户下无区分。

SHOW EVENTS

Y

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

SHOW FUNCTION CODE

Y

语法作用的对象按照租户隔离。

SHOW FUNCTION STATUS

Y

语法作用的对象按照租户隔离。

SHOW GRANTS

Y

查看自身权限无需SELECT权限;查看其他用户权限需mysql.user表的SELECT权限。

SHOW INDEX

Y

SHOW INDEX语句的作用对象按租户DATABASE隔离。

SHOW MASTER STATUS

Y

拥有SUPER或REPLICATION CLIENT权限的用户方可执行。

SHOW OPEN TABLES

Y

SHOW OPEN TABLES语句的作用对象按租户DATABASE隔离。

SHOW PLUGINS

Y-无区分

SHOW PLUGINS在多租户下无区分。

SHOW PRIVILEGES

Y-无区分

SHOW PRIVILEGES在多租户下无区分。

SHOW PROCEDURE CODE

Y

语法作用的对象按照租户隔离。

SHOW PROCEDURE STATUS

Y

语法作用的对象按照租户隔离。

SHOW PROCESSLIST

Y

SHOW PROCESSLIST语句的作用对象按租户USER隔离,普通租户仅可看到自己租户下的线程。

SHOW PROFILE

Y-无区分

SHOW PROFILE在多租户下无区分。

SHOW PROFILES

Y-无区分

SHOW PROFILES在多租户下无区分。

SHOW RELAYLOG EVENTS

N

多租户模式下TaurusDB不支持该语法。

SHOW REPLICAS

N

多租户模式下TaurusDB不支持该语法。

SHOW SLAVE HOSTS | SHOW REPLICAS

N

多租户模式下TaurusDB不支持该语法。

SHOW REPLICA STATUS

Y

拥有SUPER或REPLICATION CLIENT权限的用户方可执行。

SHOW SLAVE | REPLICA STATUS

Y

拥有SUPER或REPLICATION CLIENT权限的用户方可执行。

SHOW STATUS

Y-无区分

SHOW STATUS在多租户下无区分。

SHOW TABLE STATUS

Y

语法作用的对象按照租户隔离。

SHOW TABLES

Y

语法作用的对象按照租户隔离,普通租户仅可见自己租户下的表。

SHOW TRIGGERS

Y

语法作用的对象按照租户隔离。

SHOW VARIABLES

Y-无区分

SHOW VARIABLES在多租户下无区分。

SHOW WARNINGS

Y-无区分

SHOW WARNINGS仅显示当前Session的警告信息,在多租户下无区分。

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

BINLOG

Y

普通租户用户需被授予SUPER或BINLOG_ADMIN权限方可执行。

CACHE INDEX

Y

语法作用的对象按照租户隔离。

FLUSH

N

多租户模式下TaurusDB不支持该语法。

KILL

Y

语法作用的对象按照租户隔离,普通租户只能看到和终止自己租户下的线程。

LOAD INDEX INTO CACHE

Y

LOAD INDEX INTO CACHE语句的作用对象按租户DATABASE隔离。

RESET

N

多租户模式下TaurusDB不支持该语法。

RESET PERSIST

N

受权限控制限制,仅系统租户用户可执行。

RESTART

N

多租户模式下TaurusDB不支持该语法。

SHUTDOWN

N

多租户模式下TaurusDB不支持该语法。

实用程序语句

DESCRIBE

Y

语法作用的对象按照租户隔离。

EXPLAIN

Y

语法作用的对象按照租户隔离。

HELP

Y-无区分

HELP在多租户下无区分。

USE

Y

语法作用的对象按照租户隔离,普通租户仅可切换到自己租户下的数据库。

TaurusDB新增

CALL dbms_outln.*

Y

查询类(dbms_outln.show_outline/preview_outline)无权限限制;管理类(dbms_outln.add_index_outline/add_optimizer_outline/flush_outline/del_outline)需SUPER权限或root用户。

SHOW PBS STATUS

Y-无区分

无权限限制,普通租户用户可执行。

SHOW REPLICA STATUS USING REDO

Y

普通租户用户需被授予SUPER或REPLICATION CLIENT权限方可执行。

SHOW SLOWIO STATUS

Y-无区分

普通租户用户可执行。

CHANGE MASTER USING REDO

Y

普通租户用户需被授予SUPER或REPLICATION_SLAVE_ADMIN权限方可执行。

SHOW SLICEID

Y-无区分

无权限限制,普通租户用户可执行。

SHOW SPACEUSAGE

Y-无区分

无权限限制,普通租户用户可执行。

CALL dbms_recyclebin.*

Y

回收站功能支持多租户,数据库名自动附加租户后缀。

CALL dbms_recyclebin.show_tables()

Y-无区分

无权限限制,普通租户用户可执行。

SHOW LSNINFO

Y-无区分

普通租户用户可执行。

CALL dbms_sqlfilter.*

Y

查询类(dbms_sqlfilter.show_sql_filter)无权限限制;管理类(dbms_sqlfilter.add_sql_filter/del_sql_filter/flush_sql_filter)需SUPER权限。

RDS_TAC

N

多租户模式下TaurusDB不支持该语法。

CALL dbms_xxx.*

Y

NATIVE PACKAGE在多租户模式下支持,各子包的权限要求不同,查询类通常无权限限制,管理类需SUPER权限。

SHOW GLOBAL REPLICA STATUS

Y

普通租户用户需被授予SUPER或REPLICATION CLIENT权限方可执行。

RDS_GDB_CTRL

N

多租户模式下TaurusDB不支持该语法。

相关文档