PRIMARY KEY (id) NOT ENFORCED
时间: 2023-08-24 16:06:24 浏览: 68
这是一个 SQL 数据定义语言(DDL)语句,用于在创建或修改表时定义一个名为 id 的主键列。主键是一种用于唯一标识表中每一行的列或列组,通常用于在表中建立引用关系和确保数据的完整性。在这个例子中,PRIMARY KEY (id) 指定了 id 列为主键列。NOT ENFORCED 表示该主键约束不强制执行,即允许插入重复的 id 值或空值。这种情况可能出现在某些特殊的数据分区或数据迁移方案中。但是在大多数情况下,主键约束应该是强制执行的,以确保表中的数据完整性。因此,如果要强制执行主键约束,可以将该语句更改为 PRIMARY KEY (id) ENFORCED。
相关问题
CREATE TABLE article ( id INT, title STRING, type STRING, data_time INT, source STRING, content STRING, PRIMARY KEY (id)) ROW FORMAT DELIMITED FIELDS TERMINATED BY ','TBLPROPERTIES ("CONSTRAINT"="PRIMARY KEY (id) DISABLE NOVALIDATE"); FAILED: SemanticException [Error 10326]: Invalid Constraint syntax ENABLE/ENFORCED feature not supported yet. Please use DISABLE/NOT ENFORCED instead. hive> CREATE TABLE article ( id INT, title STRING, type STRING, data_time INT, source STRING, content STRING, PRIMARY KEY (id)) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' TBLPROPERTIES ("CONSTRAINT"="PRIMARY KEY (id) NOT ENFORCED"); FAILED: SemanticException [Error 10326]: Invalid Constraint syntax ENABLE/ENFORCED feature not supported yet. Please use DISABLE/NOT ENFORCED instead.
在创建表时,Hive不支持启用或强制执行约束。你需要使用`DISABLE`或`NOT ENFORCED`关键字来替换`ENABLE`或`ENFORCED`关键字。下面是正确的创建表的语法:
```
CREATE TABLE article (
id INT,
title STRING,
type STRING,
data_time INT,
source STRING,
content STRING,
PRIMARY KEY (id)
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
TBLPROPERTIES ("CONSTRAINT"="PRIMARY KEY (id) DISABLE NOVALIDATE");
```
或者,你可以省略`TBLPROPERTIES`部分,如下所示:
```
CREATE TABLE article (
id INT,
title STRING,
type STRING,
data_time INT,
source STRING,
content STRING,
PRIMARY KEY (id) DISABLE NOVALIDATE
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',';
```
这将创建一个名为`article`的表,并将`id`列指定为主键。`DISABLE NOVALIDATE`选项将禁用约束验证,以便在插入数据时可以使用非唯一的`id`值。
CREATE TABLE article ( id INT, title STRING, type STRING, data_time INT, source STRING, content STRING, PRIMARY KEY (id))ROW FORMAT DELIMITED FIELDS TERMINATED BY ','TBLPROPERTIES ("constraint"="NOT ENFORCED"); FAILED: SemanticException [Error 10326]: Invalid Constraint syntax ENABLE/ENFORCED feature not supported yet. Please use DISABLE/NOT ENFORCED instead.
这个错误提示是因为在 TBLPROPERTIES 中使用了 "constraint"="NOT ENFORCED" 语法,而 Hive 目前还不支持 "ENABLE/ENFORCED" 特性。你需要将 "NOT ENFORCED" 改为 "DISABLE",即改成 "constraint"="DISABLE". 改完后,创建表的 SQL 语句应该是这样的:
```
CREATE TABLE article (
id INT,
title STRING,
type STRING,
data_time INT,
source STRING,
content STRING,
PRIMARY KEY (id)
) ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
TBLPROPERTIES ("constraint"="DISABLE");
```
重新执行这个 SQL 语句,应该就可以正常创建 article 表了。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)