Imaginez que vous ayez un tableau simple:
name | is_active
----------------
A | 0
A | 0
B | 0
C | 1
... | ...
J'ai besoin de créer une contrainte unique spéciale qui échoue dans la situation suivante: des is_active
valeurs différentes ne peuvent pas coexister pour la même name
valeur.
Exemple de condition autorisée:
Remarque: un index unique multi-colonnes simple ne permet pas une telle combinaison.
A | 0
A | 0
B | 0
Exemple de condition autorisée:
A | 0
B | 1
Exemple de condition ayant échoué:
A | 0
A | 1
-- should be prevented, because `A 0` exists
-- same name, but different `is_active`
Idéalement, j'ai besoin d'une contrainte unique ou d'un index partiel unique. Les déclencheurs sont plus problématiques pour moi.
Double A,0
autorisé, mais (A,0) (A,1)
non.
ERROR: data type boolean has no default operator class for access method "gist"