PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

eindeutige Indexverletzung während der Aktualisierung

Eindeutige Indizes werden pro Zeile und nicht pro Anweisung ausgewertet (was sich z. B. von der Oracle-Implementierung unterscheidet)

Die Lösung für dieses Problem ist die Verwendung einer eindeutigen Einschränkung der aufgeschoben werden kann und somit am Ende der Transaktion ausgewertet wird.

Also stattdessen Definieren Sie für den eindeutigen Index eine Einschränkung:

alter table test add constraint test_idx_pos unique (pos)
  deferrable initially deferred;