ALTER TABLE(外表)

更新时间:2025-04-09 09:54:14

云原生数据仓库 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 '地域';

分区

重要

通过ALTER TABLE ADD PARTITION可以手动在分区外表中添加特定的某个分区或某个多级分区。如果需要自动识别OSS路径并添加分区,请参见MSCK REPAIR TABLE

增加分区

语法

ALTER TABLE table_name ADD PARTITION (partition_key=value[,...]) LOCATION 'location';

参数说明

参数

说明

参数

说明

table_name

表名。

(partition_key=value[,...])

增加的分区。

增加多级分区时,此处需配置多个等式(partition_key=value),等式之间以半角逗号(,)分隔。例如:ADD PARTITION (date='20230613',city='hangzhou')

location

指定LOCATION为分区的OSS路径。

例如,OSS文件的路径为oss://testBucketName/testfolder/p1=20230613/data.csv。增加的分区为p1='20230613'。此时需指定LOCATION 'oss://testBucketname/testfolder/'

示例

  • 增加分区。

    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[,...]);

参数说明

参数

说明

参数

说明

table_name

表名。

(partition_key=value[,...])

删除的分区。

删除多级分区时,此处需配置多个等式(partition_key=value),等式之间以半角逗号(,)分隔。删除多级分区示例:DROP PARTITION (date='20230613',city='hangzhou')

示例

  • 删除分区。

    ALTER TABLE adb_external_db.partition_table DROP PARTITION (p1='20230613');
  • 删除多级分区。

    ALTER TABLE adb_external_db.partition_table DROP PARTITION (p1='20230613',p2='hangzhou');

相关文档

CREATE EXTERNAL TABLE

  • 本页导读 (1)
  • 前提条件
  • 增加列
  • 删除列
  • 变更列名
  • 变更列数据类型
  • 变更列的默认值
  • 变更列的COMMENT
  • 分区
  • 增加分区
  • 删除分区
  • 相关文档
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等