Imagine you have a simple table:
name | is_active
----------------
A | 0
A | 0
B | 0
C | 1
... | ...
I need to create a special unique constraint which fails on following situation:
different is_active values can't co-exist for the same name value.
Example of permitted condition:
Note: simple multi-column unique index won't permit combination like this.
A | 0
A | 0
B | 0
Example of permitted condition:
A | 0
B | 1
Example of failed condition:
A | 0
A | 1
-- should be prevented, because `A 0` exists
-- same name, but different `is_active`
Ideally, I need unique constraint or unique partial index. Triggers are more problematic for me.
Double A,0 allowed, but (A,0) (A,1) isn't.