REPLACE COLUMNS

最近更新时间:2026-05-20 14:11:22

我的收藏

描述

ALTER TABLE ... REPLACE COLUMNS 语句用于一次性替换整个表的列定义。这在需要大规模重构表结构时非常有用。

语法

ALTER TABLE table_name
REPLACE 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_cols
VALUES (1, 'val1', 'val2'), (2, 'val3', 'val4');

替换列定义

ALTER TABLE tci_replace_cols
REPLACE COLUMNS (
id BIGINT NOT NULL,
username STRING COMMENT '用户名',
email STRING COMMENT '邮箱'
);

验证新结构

DESCRIBE tci_replace_cols;

SELECT * FROM tci_replace_cols;