Es wurde bereits gesagt, dass PG keine partielle (dh bedingte) EINZIGARTIGE Einschränkung definiert. Die Dokumentation besagt auch, dass die bevorzugte Methode zum Hinzufügen einer eindeutigen Einschränkung zu einer Tabelle ADD CONSTRAINT
eindeutige Indizes ist
Die bevorzugte Methode zum Hinzufügen einer eindeutigen Einschränkung zu einer Tabelle ist ALTER TABLE ... ADD CONSTRAINT. Die Verwendung von Indizes zum Erzwingen eindeutiger Einschränkungen kann als Implementierungsdetail betrachtet werden, auf das nicht direkt zugegriffen werden sollte. Man sollte sich jedoch bewusst sein, dass es nicht notwendig ist, Indizes für eindeutige Spalten manuell zu erstellen. Dies würde nur den automatisch erstellten Index duplizieren.
Es gibt eine Möglichkeit, es mithilfe von Ausschlussbeschränkungen zu implementieren (danke @dukelion für diese Lösung).
In deinem Fall wird es so aussehen
ALTER TABLE stop ADD CONSTRAINT myc EXCLUDE (col_a WITH =) WHERE (col_b IS null);