ALTER TABLE(外表)
云原生数据仓库 AnalyticDB MySQL 版支持通过ALTER TABLE
修改外表结构,包括修改列名、列数据类型、增加或删除分区。本文介绍ALTER TABLE
修改外表的语法。
本文仅适用于外表。内表的ALTER语法,请参见ALTER TABLE。
前提条件
集群的产品系列为企业版、基础版或湖仓版。
列
内核版本为3.2.1.0及以上版本的集群支持该语法。
请在云原生数据仓库AnalyticDB MySQL控制台集群信息页面的配置信息区域,查看和升级内核版本。
增加列
语法
ALTER TABLE db_name.table_name ADD [COLUMN]
{column_name column_type [DEFAULT {constant|CURRENT_TIMESTAMP}|AUTO_INCREMENT] [NULL|NOT NULL] [COMMENT 'comment']
| (column column_type [DEFAULT {constant|CURRENT_TIMESTAMP}|AUTO_INCREMENT] [NULL|NOT NULL] [COMMENT 'comment'],...)}
注意事项
不支持增加主键列。
示例
在
osstest1
表中增加一列province
,数据类型为VARCHAR。ALTER TABLE osstest1 ADD COLUMN province VARCHAR COMMENT '省份';
在
osstest1
表中增加两列,一列为vip
,数据类型为Boolean,另一列为tags
,数据类型为VARCHAR。ALTER TABLE osstest1 ADD COLUMN (vip BOOLEAN COMMENT '是否会员',tags VARCHAR DEFAULT '无' COMMENT '标签');
删除列
语法
ALTER TABLE db_name.table_name DROP [COLUMN] column_name
注意事项
不支持删除主键列。
示例
在osstest1
表中删除province
列。
ALTER TABLE osstest1 DROP COLUMN province;
变更列名
语法
ALTER TABLE table_name RENAME COLUMN column_name to new_column_name
示例
将osstest1
表中的city_name
列更名为city
。
ALTER TABLE osstest1 RENAME COLUMN city_name to city;
变更列数据类型
语法
ALTER TABLE table_name MODIFY [COLUMN] column_name new_column_type
示例
将osstest1
表中age
列由INT类型更改为BIGINT类型。
ALTER TABLE osstest1 MODIFY COLUMN age BIGINT;
变更列的默认值
语法
ALTER TABLE table_name MODIFY [COLUMN] column_name column_type DEFAULT constant|CURRENT_TIMESTAMP
示例
将osstest1
表中的sex
列的默认值设置为0。
ALTER TABLE osstest1 MODIFY COLUMN sex INT DEFAULT 0;
变更列的COMMENT
语法
ALTER TABLE table_name MODIFY [COLUMN] column_name column_type COMMENT 'new_comment'
示例
将osstest1
表中region
列的COMMENT更改为地域。
ALTER TABLE osstest1 MODIFY COLUMN region VARCHAR COMMENT '地域';
分区
分区相关的语法仅适用于OSS分区外表,其他外表不支持。
内核版本为3.1.8.0及以上版本的集群支持该语法。
请在云原生数据仓库AnalyticDB MySQL控制台集群信息页面的配置信息区域,查看和升级内核版本。
通过ALTER TABLE ADD PARTITION可以手动在分区外表中添加特定的某个分区或某个多级分区。如果需要自动识别OSS路径并添加分区,请参见MSCK REPAIR TABLE。
增加分区
语法
ALTER TABLE table_name ADD PARTITION (partition_key=value[,...]) LOCATION 'location';
参数说明
参数 | 说明 |
参数 | 说明 |
| 表名。 |
| 增加的分区。 增加多级分区时,此处需配置多个等式( |
| 指定LOCATION为分区的OSS路径。 例如,OSS文件的路径为oss://testBucketName/testfolder/p1=20230613/data.csv。增加的分区为p1='20230613'。此时需指定 |
示例
增加分区。
ALTER TABLE adb_external_db.partition_table ADD PARTITION (p1='20230613') LOCATION 'oss://testBucketName/testfolder/p1=20230613/';
增加多级分区。
ALTER TABLE adb_external_db.partition_table ADD PARTITION (p1='20230613',p2='hangzhou') LOCATION 'oss://testBucketName/testfolder/p1=20230613/p2=hangzhou';
删除分区
语法
ALTER TABLE table_name DROP PARTITION (partition_key=value[,...]);
参数说明
参数 | 说明 |
参数 | 说明 |
| 表名。 |
| 删除的分区。 删除多级分区时,此处需配置多个等式( |
示例
删除分区。
ALTER TABLE adb_external_db.partition_table DROP PARTITION (p1='20230613');
删除多级分区。
ALTER TABLE adb_external_db.partition_table DROP PARTITION (p1='20230613',p2='hangzhou');
相关文档
- 本页导读 (1)
- 前提条件
- 列
- 增加列
- 删除列
- 变更列名
- 变更列数据类型
- 变更列的默认值
- 变更列的COMMENT
- 分区
- 增加分区
- 删除分区
- 相关文档