DBAtlas · Atlas für Datenbankbetrieb

P0001: raise_exception

PostgreSQL

Was 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.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank