组合唯一约束

UNIQUE约束要求,对于列或列组合而言,表中每行的值必须是不同的。
UNIQUE约束的怪异之处在于,可以在键列输入NULL值。在键列中,可能有任意数量的包含NULL值得行。
UNIQUE约束通过索引来实施。在定义UNIQUE约束时,Oracle将查看键列上的索引,如果不存在,就创建一个。
索引(称为B*树索引)的结构不包含NULL值,正因为如此,才允许出现多个包含null的行。
选择 WHERE key_column is NULL不使用索引(因为索引不包含NULL),因此总是导致扫描整个表。

所以说组合唯一约束的列可以全为空或某几个为空,列是否能为空是由not null约束决定的。

原文地址:https://www.cnblogs.com/drizzlewithwind/p/5852503.html