一、语法
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;