SET/UNSET TBLPROPERTIES

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

我的收藏

描述

本节涵盖表属性(Table Properties)的增删改操作:
操作
说明
SET TBLPROPERTIES
设置或更新表属性,包括主键、排序键、自定义属性、表注释等
UNSET TBLPROPERTIES
移除指定的表属性

语法

设置主键 / 排序键 / 自定义属性

ALTER TABLE table_name SET TBLPROPERTIES (
'primary-key' = 'col_name',
'sort-order' = 'col_name',
'custom-prop' = 'value'
);

修改表属性

ALTER TABLE table_name SET TBLPROPERTIES ('comment' = '新的表描述');

移除表属性

-- 移除单个属性
ALTER TABLE table_name UNSET TBLPROPERTIES ('property_key');

-- 同时移除多个属性
ALTER TABLE table_name UNSET TBLPROPERTIES ('key1', 'key2');

注意事项

Iceberg 不支持 SET NOT NULL(无法确认现有数据是否有 NULL
UNSET 不存在的属性不会报错

示例

创建基础表

DROP TABLE IF EXISTS tci_set_unset;

CREATE TABLE tci_set_unset (
id BIGINT NOT NULL,
name STRING
) USING tci
TBLPROPERTIES ('initial-prop' = 'v1');

SET TBLPROPERTIES(设置 primary-key + sort-order)

ALTER TABLE tci_set_unset
SET TBLPROPERTIES (
'primary-key' = 'id',
'sort-order' = 'name'
);

SET TBLPROPERTIES(修改注释)

ALTER TABLE tci_set_unset
SET TBLPROPERTIES ('comment' = 'TCI 属性测试表');

SHOW TBLPROPERTIES 验证

SHOW TBLPROPERTIES tci_set_unset;

UNSET TBLPROPERTIES

ALTER TABLE tci_set_unset
UNSET TBLPROPERTIES ('initial-prop');

验证最终状态

SHOW TBLPROPERTIES tci_set_unset;
-- 确认 initial-prop 已移除,primary-key / sort-order / comment 存在