使用group-by的Postgres表约束

时间:2014-12-15 02:59:38

标签: postgresql constraints

我有一个Postgres表,如下所示:

Category     Unit          Default Unit
---------------------------------------
Currency     USD           True
Currency     EURO          False
Currency     AUS           False
Length       Kilometer     True
Length       Mile          False
Length       Foot          False
Length       Inch          False
Mass         Kilogram      True

我想设置一个表约束,以便每个类别只能有一个“默认单位”。

这可以在约束中使用Group By来完成吗?

1 个答案:

答案 0 :(得分:2)

您可以创建唯一的部分索引:

create unique index idx_table(category, default_unit) on table(category, default_unit)
    where default_unit;