可以在可以包含 NULL 的列上创建唯一约束。但是,最多只有一行可能在该列中包含 NULL。
我不明白为什么会这样,因为根据定义,一个 NULL 不等于另一个 NULL(因为 NULL 实际上是一个未知值,一个未知值不等于另一个未知值)。
我的问题: 1. 为什么会这样?2. 这是特定于 MsSQL 的吗?
我有一种预感,这是因为唯一约束可以充当外键的引用字段,并且如果存在多个具有 NULL 的记录,FK 将不知道它所引用的引用表中的哪条记录。但是,这只是一种预感。
(是的,我知道 UC 可以跨多个列,但这并没有改变问题;相反,它只是让它变得复杂了一点。)