“not null”和“not null enable”有什么区别吗?(涉及IT技术)

41

当我们在Oracle中定义表时,可以将列定义为:

"NAME" VARCHAR2(80) NOT NULL ENABLE

我的问题是我不理解这个语句中“ENABLE”的含义。如果我们只定义为"NAME" VARCHAR2(80) NOT NULL,会有什么区别?

我的问题是我不理解这个语句中“ENABLE”的含义。如果我们只定义为"NAME" VARCHAR2(80) NOT NULL,会有什么区别?

3个回答

49

ENABLE 是默认状态,所以不指定它的效果相同。相反,指定DISABLE将导致约束不生效。

有关更多信息,请参见约束文档


1
例如(1)
CREATE TABLE FOO (PRIORITY_LEVEL NUMBER DEFAULT 42 NOT NULL ENABLE);

是相同的

CREATE TABLE FOO (PRIORITY_LEVEL NUMBER DEFAULT 42 NOT NULL);

(2)

CREATE TABLE FOO (PRIORITY_LEVEL NUMBER DEFAULT 42 NOT NULL DISABLE);

一般来说,与...相同

CREATE TABLE FOO (PRIORITY_LEVEL NUMBER NULL);

0
CONSTRAINT "VALID_RULE" CHECK ("NAME" IS NOT NULL) ENABLE,

我也对此感到困惑,但上述示例使我更容易理解了。考虑关注那些帮助我很多的括号。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接