ALTER TABLE用來對錶的資訊進行修改。
背景資訊
目前ALTER TABLE支援的操作包括:
- 添加分區。
- 刪除分區。
- 添加列。
- 修改列。
注意事項
- 目前ALTER TABLE的操作只支援OSS表。
- 不支援對
partition key
做修改。 - 不支援修改內表的列類型。
- 如果表中存在大量的分區,修改列名稱和類型會很耗時,請謹慎操作。
添加分區
文法ALTER TABLE table_name ADD [IF NOT EXISTS] PARTITION partition_spec [LOCATION 'location'][, PARTITION partition_spec [LOCATION 'location'], ...];
partition_spec:
: (partition_column = partition_col_value, partition_column = partition_col_value, ...)
樣本alter table test_opencsv_part
add partition(dt = 'bar')
location 'oss://bucket001/datasets/test/test_opencsv_part/dt=foo/';
刪除分區
文法ALTER TABLE table_name DROP [IF EXISTS] PARTITION partition_spec[, PARTITION partition_spec, ...];
樣本ALTER TABLE order_part DROP
PARTITION (dt='2008-08-08', status='ready');
添加列
文法ALTER TABLE table_name ADD COLUMNS(col_name data_type);
樣本alter table alter_table_add_column_db.parquet_test add columns(gender string);
修改列
文法ALTER TABLE table_name CHANGE [COLUMN] col_old_name col_new_name column_type
[COMMENT col_comment];
樣本CREATE TABLE test_change (a int, b int, c int);
// First change column a’s name to a1.
ALTER TABLE test_change CHANGE a a1 INT;
// Add a comment to column a1
ALTER TABLE test_change CHANGE a1 a1 INT COMMENT 'this is column a1';