一、语法
ALTER TABLE table_name ALTER COLUMN column_name DROP NOT NULL;
二、注意事项
·Iceberg 不支持 SET NOT NULL — 无法反向操作,原因是引擎无法确认现有数据中是否已存在 NULL 值。
·DROP NOT NULL 是元数据变更,不涉及数据重写,执行速度快。
·操作前请确认下游消费逻辑能正确处理 NULL 值。
三、创建基础表
DROP TABLE IF EXISTS tci_set_not_null;CREATE TABLE tci_set_not_null ( id BIGINT NOT NULL, name STRING) USING tciTBLPROPERTIES ('initial-prop' = 'v1');
四、移除非空约束
ALTER TABLE tci_set_not_null ALTER COLUMN id DROP NOT NULL;
五、验证最终状态
DESCRIBE tci_set_not_null;– 确认 id 列不再包含 NOT NULL 约束