我正在使用 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/