ALTER TABLE
功能
该语句用于修改已有表,包括:
- 修改表名、分区名、索引名、列名
- 修改表注释
- 修改分区(增删分区和修改分区属性)
- 修改分桶方式和分桶数量
- 修改列(增删列和修改列顺序和注释)
- 创建或删除 rollup index
- 修改 bitmap index
- 修改表的属性
- 对表进行原子替换
- 手动执行 Compaction 合并表数据
- 删除主键索引)
提示
该操作需要有对应表的 ALTER 权限。
语法
ALTER TABLE 语法格式如下:
ALTER TABLE [<db_name>.]<tbl_name>
alter_clause1[, alter_clause2, ...]
alter_clause可以包含以下操作:重命名、注释、分区、分桶、列、汇总索引、Bitmap索引、表属性、交换和 Compaction。
- rename: 修改表名、rollup index 名、partition 名或列名(从 3.3.2 版本开始支持)。
- comment: 修改表的注释。从 3.1 版本开始支持。
- partition: 修改分区属性,删除分区,增加分区。
- bucket:修改分桶方式和分桶数量。
- column: 增加列,删除列,调整列顺序,修改列类型以及注释。
- rollup index: 创建或删除 rollup index。
- bitmap index: 修改 bitmap index。
- swap: 原子替换两张表。
- compaction: 对指定表或分区手动执行 Compaction(数据版本合并)。从 3.1 版本开始支持。
- drop persistent index: 存算分离下删除主键索引。从 3.3.9 版本开始支持。
使用限制和注意事项
- partition、column 和 rollup index 这些操作不能同时出现在一条
ALTER TABLE语句中。 - 每张表仅支持一个进行中的 Schema Change 操作。不能对同一张表同时执行两条 Schema Change 命令。
- bucket、column、rollup index 是异步操作,命令提交成功后会立即返回一个成功消息,您可以使用 SHOW ALTER TABLE 语句查看操作的进度。如果需要取消正在进行的操作,则您可以使用 CANCEL ALTER TABLE。
- rename、comment、partition、bitmap index 和 swap 是同步操作,命令返回表示执行完毕。
Rename 对名称进行修改
修改表名
语法:
ALTER TABLE <tbl_name> RENAME <new_tbl_name>;