DBAtlas · Atlas für Datenbankbetrieb

23505: unique_violation

PostgreSQL

Was bedeutet das?

Die eingefügte oder aktualisierte Zeile verletzt einen UNIQUE-Constraint oder den PRIMARY KEY; der gleiche Wert ist in der Tabelle bereits vorhanden.

Ursache

Erneutes Einfügen mit demselben eindeutigen Schlüssel, doppelte Daten in einer eindeutigen Spalte, ein durch manuelle Inserts zurückgefallener Sequence-Wert oder zwei parallele Requests, die denselben Schlüssel einfügen.

Lösung

Constraint-Name und Schlüsselwert im Fehlerdetail zeigen, welche Zeile kollidiert. Um die vorhandene Zeile zu aktualisieren, verwende INSERT ... ON CONFLICT (my_column) DO UPDATE oder DO NOTHING. Duplikate finden: SELECT my_column, COUNT(*) FROM my_table GROUP BY my_column HAVING COUNT(*) > 1. Ist die Sequence zurückgefallen: SELECT setval('seq_name', (SELECT MAX(id) FROM my_table)).

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank