腾讯云数据仓库 TCHouse-X ADD COLUMN(S)

ALTER TABLE … ADD COLUMNS 语句用于向已有表中添加一列或多列。可以同时添加多个列(逗号分隔),也可以指定列的位置(FIRST 或 AFTER 某列之后)。

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

一、语法

ALTER TABLE table_nameADD COLUMNS ( col_spec [ , col_spec ] … )– 其中 col_spec 定义为:col_spec := column_name data_type [ NOT NULL ] [ COMMENT 'comment' ] | column_name data_type [ NOT NULL ] [ COMMENT 'comment' ] FIRST | column_name data_type [ NOT NULL ] [ COMMENT 'comment' ] AFTER other_column

二、参数说明

子句/关键字 用途 说明
column_name 新列名 必须符合标识符命名规则
data_type 列数据类型 支持 BIGINT、STRING、DOUBLE、TIMESTAMP、BOOLEAN 等
NOT NULL 非空约束 指定列不允许为空值
COMMENT 列注释 记录列的业务含义
FIRST 插入位置 将新列添加到表的第一位(最左)
AFTER column_name 插入位置 将新列添加到指定列之后

三、注意事项

·添加列是纯元数据操作,不会影响已有数据。

·Map 类型只能向 value 结构体添加字段,不能向 key 添加字段。

四、创建基础表

DROP TABLE IF EXISTS tci_add_col;CREATE TABLE tci_add_col ( id BIGINT NOT NULL, name STRING) USING tciTBLPROPERTIES ('primary-key' = 'id');

五、添加单列

ALTER TABLE tci_add_colADD COLUMNS (age INT COMMENT '年龄');

六、同时添加多列

ALTER TABLE tci_add_colADD COLUMNS ( email STRING COMMENT '邮箱', created_at TIMESTAMP COMMENT '创建时间');

七、FIRST 添加到第一列

ALTER TABLE tci_add_colADD COLUMN seq_no BIGINT FIRST;

八、AFTER 添加到指定列之后

ALTER TABLE tci_add_colADD COLUMN nickname STRING AFTER name;

九、DESCRIBE 最终结构

DESCRIBE tci_add_col;

十、添加带 NOT NULL 的列 + 写入读取验证

ALTER TABLE tci_add_colADD COLUMN active BOOLEAN NOT NULL DEFAULT true;INSERT INTO tci_add_colVALUES (1, 'test_user', 25, 'test@test.com', TIMESTAMP('2025-01-01 00:00:00'), 100, 'nick', true);SELECT id, name, age, nickname FROM tci_add_col;

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