假设您有一个简单的表:
name | is_active
----------------
A | 0
A | 0
B | 0
C | 1
... | ...
我需要创建一个特殊的唯一约束,该约束在以下情况下会失败:is_active
对于相同的name
值,不同的值不能共存。
允许条件的示例:
注意:简单的多列唯一索引不允许这样的组合。
A | 0
A | 0
B | 0
允许条件的示例:
A | 0
B | 1
条件失败的示例:
A | 0
A | 1
-- should be prevented, because `A 0` exists
-- same name, but different `is_active`
理想情况下,我需要唯一约束或唯一局部索引。触发器对我来说更成问题。
A,0
允许加倍,但(A,0) (A,1)
不允许。
ERROR: data type boolean has no default operator class for access method "gist"