DBAtlas · Atlas für Datenbankbetrieb

23514: check_violation

PostgreSQL

Was bedeutet das?

Ein CHECK-Constraint wurde verletzt. Die eingefügte oder aktualisierte Zeile erfüllt eine auf der Tabelle definierte logische Bedingung nicht (z. B. price > 0).

Ursache

Daten, die eine Geschäftsregel verletzen (negativer Preis, ungültiger Statuscode, Verletzung eines Datumsbereichs); keine Validierung auf Anwendungsseite; ein für die Daten zu strikter Constraint; Datensätze, die bei einer Massenladung die Regel verletzen.

Lösung

Ermittle über den Constraint-Namen in der Fehlermeldung, welche Bedingung verletzt wurde; Definition anzeigen: \d table_name. Frage die verletzenden Zeilen ab, indem du die Bedingung umkehrst. Korrigiere die Daten oder, falls sich die Regel tatsächlich geändert hat, aktualisiere den Constraint: ALTER TABLE my_table DROP CONSTRAINT name; ALTER TABLE my_table ADD CONSTRAINT name CHECK (new_condition);

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank