Wie kann ich Meldungen zu Einschränkungsverletzungen anpassen?

7

Ich möchte für jede Einschränkung meine eigene Nachricht definieren. Ist es möglich, Meldungen zu Einschränkungsverletzungen in PostgreSQL anzupassen?

Pavel Nuzhdin
quelle

Antworten:

10

Dies wurde im Postgres-Forum gefragt: Fehler bei benutzerdefinierten Einschränkungsverletzungen

und nach einiger Diskussion:

...
Also habe ich das richtig verstanden, dass wenn ich zB benutzerdefinierte Fehlermeldungen für eine Fremdschlüsselverletzung haben möchte, ich alle fkeys durch Triggerfunktionen ersetzen muss?!

Michael Musenbrock

dort geantwortet:

Die kurze Antwort lautet: Es ist zwar möglich, eigene Einschränkungsauslöser zu erstellen, die Fremdschlüssel emulieren, aber nicht. Dies wäre ein Wartungsalptraum.

Ich wäre besser zu warten, um diese Fehler in Ihrer Client-Anwendung abzufangen. Hier würden Sie diese Fehlermeldungen gemäß den Geschäftsregeln Ihrer Clientanwendung umformulieren.

Richard Broersma Jr.

mit dem, was ich denke, würde am besten funktionieren:

Es ist nicht schwer zu erstellen:

CONSTRAINT some_constraint_name FOREIGN KEY col REFERENCES blah(id)

... dann in der App abgleichen "some_constraint_name"und einem geeigneten Fehler zuordnen. Das ist, was ich tue und es funktioniert sehr gut für alle Einschränkungstypen, nicht nur für Fremdschlüsseleinschränkungen.

-
Craig Ringer

ypercubeᵀᴹ
quelle