腾讯云数据仓库 TCHouse-X ALTER COLUMN

ALTER TABLE … ALTER COLUMN 语句用于修改列的类型、注释、空值约束以及位置排序。支持安全类型提升(widen types)、添加注释、调整列顺序等操作。

相关产品
腾讯云数据仓库 TCHouse-X 产品页,含版本规格、价格与购买入口。

一、语法

— 修改类型ALTER TABLE table_name ALTER COLUMN col_name TYPE new_type;– 修改注释ALTER TABLE table_name ALTER COLUMN col_name COMMENT 'new comment';– 修改类型 + 注释ALTER TABLE table_name ALTER COLUMN col_name TYPE new_type COMMENT 'comment';– 取消 NOT NULL 约束ALTER TABLE table_name ALTER COLUMN col_name DROP NOT NULL;– 调整列顺序:移到第一列ALTER TABLE table_name ALTER COLUMN col_name FIRST;– 调整列顺序:移到某列之后ALTER TABLE table_name ALTER COLUMN col_name AFTER other_col;

二、安全类型提升规则

以下类型变更被视为安全的:

源类型 目标类型
int bigint
float double
decimal(P, S) decimal(P2, S) 其中 P2 > P

三、注意事项

·不支持使用 SET NOT NULL 将可为空的列改为非空列(Iceberg 无法确认是否已有 NULL 值)。

·ALTER COLUMN 不能用于更新 STRUCT 类型本身(需用 ADD/DROP COLUMN 来增减 STRUCT 字段)。

四、创建基础表及数据

DROP TABLE IF EXISTS tci_alter_col;CREATE TABLE tci_alter_col ( id INT NOT NULL, name STRING, score FLOAT, active STRING) USING tci;INSERT INTO tci_alter_colVALUES (1, 'Alice', 95.5, 'Y'), (2, 'Bob', 88.0, 'N');

五、数据类型提升:INT > BIGINT

ALTER TABLE tci_alter_colALTER COLUMN id TYPE BIGINT;

六、数据类型提升:FLOAT > DOUBLE

ALTER TABLE tci_alter_colALTER COLUMN score TYPE DOUBLE;

七、修改列注释

ALTER TABLE tci_alter_colALTER COLUMN name COMMENT '用户姓名';

八、DROP NOT NULL

ALTER TABLE tci_alter_colALTER COLUMN id DROP NOT NULL;

九、FIRST 调整顺序

ALTER TABLE tci_alter_colALTER COLUMN active FIRST;

十、验证最终结构

DESCRIBE tci_alter_col;SELECT * FROM tci_alter_col;

赞 (0)
上一篇 4天前
下一篇 4天前