我有一个表 applications
,其中包含 user_id
、status
等字段。 status
可以是 [0,1,2]
。
我需要在 applications 表中施加一个约束,在 0
状态下不能有多个具有相同 user_id
的行。然而,在状态 1
或 2
中可能有多个具有 user_id
的行。
为了演示,这是不允许的:
user_id | status
abc | 0
abc | 0
但是,这是允许的:
user_id | status
abc | 1
abc | 1
我如何施加这样的约束?我正在使用 Postgres。
最佳答案
您可以为此使用过滤后的唯一索引:
create unique index on applications (user_id)
where status = 0;
关于postgresql - Postgres : Unique constrain on Column-A, Column-B [value1],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58726768/