
# DDL概述
DDM支持通用的DDL操作：建库，建表，修改表结构等，但实现方式与普通的MySQL数据库有所区别。
#### 在MySQL客户端执行DDL操作
![](https://support.huaweicloud.com/usermanual-ddm/public_sys-resources/caution_3.0-zh-cn.png)
- rename table name不支持与其他DDL语句在同一条SQL执行。
- 对拆分表执行修改字段名操作的同时执行类似SELECT \* \[DDL相关表\]等包含全字段的查询语句时，有可能会上报列名不存在的异常，建议在业务低峰期执行此类修改操作，且等修改操作执行完成后再进行相关查询操作，以降低报错概率。
- 在DDM节点或后端RDS节点压力极大的情况下，对拆分表执行删除字段名操作的同时执行SELECT \* \[DDL相关表\]等包含全字段的查询语句时，有可能会上报列名不存在的异常，建议在业务低峰期执行删除类操作，且等删除类操作执行完成后再进行相关查询操作，以降低报错概率。
 
- TRUNCATE Syntax 示例：
  ```
  TRUNCATE TABLE t1;
  ```
  表示清空表格t1。
  TRUNCATE会将表完全清空，它需要DROP权限。在逻辑上类似于删除所有行的DELETE语句。
  
- ALTER TABLE Syntax 示例：
  ```
  ALTER TABLE t2 DROP COLUMN c, DROP COLUMN d;
  ```
  表示更改表t2的结构，删除c列和d列。
  ALTER可以添加或删除列、创建或销毁索引、更改现有列的类型或重命名列或表本身。还可以更改特性，如用于表或表注释的存储引擎。
  
- DROP INDEX Syntax 示例：
  ```
  DROP INDEX `PRIMARY` ON t;
  ```
  表示删除表t中的主键。
  DROP INDEX即从表tbl_name中删除名为index_name的索引。
  
- CREATE INDEX Syntax 示例：
  ```
  CREATE INDEX part_of_name ON customer (name(10));
  ```
  表示使用name列的前10个字符创建索引（假设name具有非二进制字符串类型）。
  CREATE INDEX用于向现有表添加索引。
  
 
