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 '地區';分區
分區相關的文法僅適用於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');