hive 建表后增加primary key
时间: 2023-07-29 20:05:42 浏览: 50
在 Hive 中,你可以在表创建后使用 ALTER TABLE 命令来添加主键(primary key)。
1. 首先,创建一个不包含主键的表:
```
CREATE TABLE my_table (
id INT,
name STRING,
age INT
);
```
2. 然后,使用 ALTER TABLE 命令添加主键。在 Hive 中,主键是通过创建一个唯一索引来实现的。因此,我们需要使用 CREATE INDEX 命令创建一个唯一索引,并将其与表关联起来。
```
ALTER TABLE my_table ADD CONSTRAINT my_table_pk PRIMARY KEY (id) DISABLE NOVALIDATE;
CREATE INDEX my_table_idx ON TABLE my_table (id) AS 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler' WITH DEFERRED REBUILD;
ALTER INDEX my_table_idx ON my_table REBUILD;
```
这个命令将在 my_table 表上创建一个名为 my_table_pk 的主键,该主键由 id 列组成。在创建索引时,我们使用了延迟重建选项,以便我们可以重新构建索引。最后,我们使用 ALTER INDEX 命令来重建索引。
注意:在 Hive 中,主键是通过唯一索引实现的,而不是通过约束。因此,即使你使用 DISABLE NOVALIDATE 选项,Hive 也不会强制执行主键的唯一性。