P0001: raise_exception
PostgreSQLWas bedeutet das?
Eine PL/pgSQL-Funktion oder ein Trigger hat mit RAISE EXCEPTION absichtlich einen Fehler ausgelöst. Dieser Fehler stammt nicht von der Datenbank-Engine, sondern von Geschäftsregel-Code, den du (oder eine Bibliothek) geschrieben hast.
Ursache
Wenn die Geschäftslogik eine Validierung nicht besteht, hat der Entwickler RAISE EXCEPTION 'message' USING ERRCODE = ...; aufgerufen. Zum Beispiel löst ein Trigger einen eigenen Fehler aus, um ein unzulässiges Update zu blockieren oder eine Konsistenzregel durchzusetzen.
Lösung
Die Fehlermeldung und eventuelle HINT-/DETAIL-Felder erklären, was die Funktion abgelehnt hat; erfülle die Geschäftsregel entsprechend. Um die Quelle zu finden, prüfe den Code der betreffenden Funktion bzw. des Triggers (die RAISE-Anweisungen). Wird ein bestimmter SQLSTATE benötigt, vergib mit RAISE ... USING ERRCODE statt des generischen P0001 einen aussagekräftigen Code, damit die Anwendung ihn unterscheiden kann.