我有一个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来完成吗?
答案 0 :(得分:2)
您可以创建唯一的部分索引:
create unique index idx_table(category, default_unit) on table(category, default_unit)
where default_unit;