DDL差异
对比AnalyticDB for MySQL与标准MySQL的DDL语句支持差异。CREATE TABLE、ALTER TABLE、CREATE VIEW等常用DDL完全支持,部分高级DDL因分布式架构特性不适用。
AnalyticDB for MySQL兼容绝大多数常用MySQL DDL语句。您可以像使用MySQL一样执行建表、改表、建视图等核心操作。以下按支持程度分组列出所有DDL语句的兼容情况。
完全支持的DDL
|
DDL语句 |
说明 |
|
创建表。 |
|
|
CREATE TABLE ... LIKE |
使用LIKE语法创建表。 |
|
使用SELECT语法创建表(CTAS)。 |
|
|
ALTER TABLE Partition |
修改表的分区。 |
|
RENAME TABLE |
重命名一个或多个表。 |
|
DROP TABLE |
删除一个或多个表。 |
|
TRUNCATE TABLE |
清空表的所有行。 |
|
定义新的视图。 |
|
|
删除一个或多个视图。 |
部分支持的DDL(有限制)
|
DDL语句 |
支持情况 |
定义 |
|
支持。 暂不支持:
|
修改表的定义。 |
|
|
支持。 创建XUANWU_V2表时默认不创建全列索引。创建XUANWU表时默认创建全列索引 |
定义一个新的索引。 |
|
|
支持。 AnalyticDB for MySQL中会忽略CHARACTER SET及COLLATE的值。 |
创建一个新的数据库。 |
|
|
支持。 为了保护数据,在AnalyticDB for MySQL中删除数据库前,您需要先删除目标库下的表。 |
删除数据库。 |
不支持的DDL
以下DDL语句因云原生分布式架构特性不适用。
|
DDL语句 |
定义 |
|
存储过程和函数 |
|
|
ALTER FUNCTION |
修改函数的定义。 |
|
ALTER PROCEDURE |
修改存储过程特征。 |
|
CREATE FUNCTION |
定义一个新的函数。 |
|
CREATE PROCEDURE |
定义存储过程。 |
|
DROP FUNCTION |
删除函数。 |
|
DROP PROCEDURE |
删除存储过程。 |
|
触发器和事件 |
|
|
ALTER EVENT |
修改现有事件的一个或多个特征。 |
|
CREATE EVENT |
定义一个新的事件。 |
|
CREATE TRIGGER |
定义触发器。 |
|
DROP EVENT |
删除事件。 |
|
DROP TRIGGER |
删除触发器。 |
|
表空间和日志文件组 |
|
|
ALTER LOGFILE GROUP |
修改日志文件组。 |
|
ALTER TABLESPACE |
修改表空间,添加新数据文件或从表空间删除数据文件。 |
|
CREATE LOGFILE GROUP |
定义一个新的日志文件组或将文件添加到现有的日志文件组。 |
|
CREATE TABLESPACE |
定义表空间。 |
|
DROP LOGFILE GROUP |
删除日志文件组。 |
|
DROP TABLESPACE |
删除表空间。 |
|
服务器 |
|
|
ALTER SERVER |
修改服务器信息。 |
|
CREATE SERVER |
定义一个用于存储引擎的服务器。 |
|
DROP SERVER |
删除服务器。 |
|
其他 |
|
|
ALTER DATABASE |
修改数据库属性。 |
|
ALTER VIEW |
修改视图的定义。 |
|
CREATE TEMPORARY TABLE |
创建临时表。 |
|
DROP INDEX |
删除索引。 |
|
FOREIGN KEY Constraints |
外键约束。 |