oracle - 多列的唯一约束

标签 oracle unique-constraint

我正在使用 Oracle 表,并在四列上创建了唯一约束。约束内的这些列可以包含 NULL 吗?

最佳答案

除非列被指定为 NOT NULL,否则列中可以有 NULL。但是,您只能存储一个 NULL 实例(除非所有列均为 NULL,否则不允许使用两组相同的列):

SQL> CREATE TABLE t (id1 NUMBER, id2 NUMBER);

Table created
SQL> ALTER TABLE t ADD CONSTRAINT u_t UNIQUE (id1, id2);

Table altered
SQL> INSERT INTO t VALUES (1, NULL);

1 row inserted
SQL> INSERT INTO t VALUES (1, NULL);

INSERT INTO t VALUES (1, NULL)

ORA-00001: unique constraint (VNZ.U_T) violated

SQL> /* you can insert two sets of NULL, NULL however */
SQL> INSERT INTO t VALUES (NULL, NULL);

1 row inserted
SQL> INSERT INTO t VALUES (NULL, NULL);

1 row inserted

关于oracle - 多列的唯一约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1841388/

相关文章:

oracle - NVL 中的 Select 语句

sql - Oracle 减号和联合运算顺序/优先级

mysql - 如何防止表格重复输入?

SQL:如何根据两个字段查找重复项?

sql - PLS-00222 : no function with name 'INFO_TYPE' exists in this scope

java - Oracle MERGE 和准备好的语句

oracle - 在巨大的表中创建索引/pk 花费的时间太长。我正在使用甲骨文。我怎么知道它是否进展顺利?

sql - 如何跨多个表创建条件唯一约束?

postgresql - 具有大量列的唯一索引