描述
ALTER TABLE ... REPLACE COLUMNS 语句用于一次性替换整个表的列定义。这在需要大规模重构表结构时非常有用。语法
ALTER TABLE table_nameREPLACE COLUMNS (col1 type1 [ NOT NULL ] [ COMMENT 'cmt1' ],col2 type2 [ NOT NULL ] [ COMMENT 'cmt2' ],...);
注意事项
REPLACE COLUMNS 会完全替换所有列定义,原有列会被丢弃。已有数据会根据新的 Schema 进行映射(兼容的列保留数据)。
替换时需确保主键等关键约束在新定义中正确设置。
示例
创建基础表及数据
DROP TABLE IF EXISTS tci_replace_cols;CREATE TABLE tci_replace_cols (id INT,old_col1 STRING,old_col2 STRING) USING tci;INSERT INTO tci_replace_colsVALUES (1, 'val1', 'val2'), (2, 'val3', 'val4');
替换列定义
ALTER TABLE tci_replace_colsREPLACE COLUMNS (id BIGINT NOT NULL,username STRING COMMENT '用户名',email STRING COMMENT '邮箱');
验证新结构
DESCRIBE tci_replace_cols;SELECT * FROM tci_replace_cols;