我读到我们无法在Hive表中的列上创建主键。但我在其他地方看到了下面的DDL并执行了它。它没有任何问题。
create table prim(id int, name char(30))
TBLPROPERTIES("PRIMARY KEY"="id");
在此之后我执行了“describe formatted prim”并且看到在列ID上创建了一个键
Table Parameters:
PRIMARY KEY id
我在表格中插入了两张ID号相同的记录。
insert into prim values(1,'ABCD');
insert into prim values(2,'EFGH');
两条记录都插入到表格中。令我感到困惑的是,我们无法在创建语句中给出我能理解的PRIMARY KEY,但在TBLPROPERTIES("PRIMARY KEY"="id")
中给出它与RDBMS中的主键有何不同。
答案 0 :(得分:2)
PRIMARY KEY
中的 TBLPROPERTIES
用于元数据引用以保留列重要性。它不对该列应用任何约束。这可以从设计角度用作参考。