可空的自然身份?

时间:2011-08-02 02:47:34

标签: postgresql unique-constraint

我可以为自然id字段添加唯一约束,这样只有非空值才应该是唯一的,但允许多个空值吗?

1 个答案:

答案 0 :(得分:2)

即可。根据文档

,这听起来像是默认行为
  

通常,当表中有两行或更多行时,约束中包含的所有列的值相等,则违反了唯一约束。但是,在此比较中,空值不被视为相等。这意味着即使存在唯一约束,也可以在至少一个约束列中存储包含空值的重复行。此行为符合SQL标准,但我们听说其他SQL数据库可能不遵循此规则。因此在开发可移植的应用程序时要小心。

http://www.postgresql.org/docs/8.1/static/ddl-constraints.html