假设您有一个简单的表:
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"