23514: check_violation
PostgreSQLWas 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);