全部產品
Search
文件中心

AnalyticDB:ALTER TABLE(外表)

更新時間:Apr 10, 2025

AnalyticDB for 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