PostgreSQL:条件唯一约束

时间:2012-06-07 19:33:07

标签: postgresql

鉴于:

----------------------------------
      vin     | driver | is_owner
--------------+--------+----------
 231431cxzv87 | bob    | true
 231431cxzv87 | jeff   | false
 231431cxzv87 | greg   | false
 32342klj234s | jeff   | true

有没有办法添加约束,以便每个vin只有一个所有者?


修改:我找到了this question 添加partial unique index是否适合此目的?

1 个答案:

答案 0 :(得分:13)

是部分索引是您的选择。

create unique index unique__vin on table (vin) where is_owner;

此处索引仅涵盖is_owner为true的行,并且此行vin应该是唯一的。