在
在这个表中,一个用户可以拥有多个徽章,但每个用户不能拥有超过一个活动徽章(即
换句话说,查询语句应该...
Postgres
中,我有一个名为user_badge
的表格,包含三列,如下所示。# select * from user_badge;
id | user_id | badge_id | is_active |
----+---------+----------+------------
1 bob 00001 False
2 bob 00002 True
3 alice 00003 True
4 alice 00004 False
5 alice 00005 False
在这个表中,一个用户可以拥有多个徽章,但每个用户不能拥有超过一个活动徽章(即
is_active
列为True的行)。换句话说,查询语句应该...
SELECT user_id FROM user_badge WHERE is_active;
必须返回唯一的行。
这是我希望对此表施加的约束条件。 有没有一种方法可以指定Postgres
来保证它? 在Postgres的约束条件文档中,我看到如何在列和一组列上放置唯一性约束,但没有看到涉及WHERE
的唯一性约束的示例。