Stellen Sie sich vor, Sie haben eine einfache Tabelle:
name | is_active
----------------
A | 0
A | 0
B | 0
C | 1
... | ...
Ich muss eine spezielle eindeutige Einschränkung erstellen, die in der folgenden Situation fehlschlägt: Unterschiedliche is_active
Werte können nicht für denselben name
Wert nebeneinander existieren .
Beispiel für einen zulässigen Zustand:
Hinweis: Ein einfacher mehrspaltiger eindeutiger Index lässt eine solche Kombination nicht zu.
A | 0
A | 0
B | 0
Beispiel für einen zulässigen Zustand:
A | 0
B | 1
Beispiel für einen fehlgeschlagenen Zustand:
A | 0
A | 1
-- should be prevented, because `A 0` exists
-- same name, but different `is_active`
Idealerweise benötige ich eine eindeutige Einschränkung oder einen eindeutigen Teilindex. Auslöser sind für mich problematischer.
Doppelt A,0
erlaubt, aber (A,0) (A,1)
nicht.
ERROR: data type boolean has no default operator class for access method "gist"