Ich möchte für jede Einschränkung meine eigene Nachricht definieren. Ist es möglich, Meldungen zu Einschränkungsverletzungen in PostgreSQL anzupassen?
quelle
Ich möchte für jede Einschränkung meine eigene Nachricht definieren. Ist es möglich, Meldungen zu Einschränkungsverletzungen in PostgreSQL anzupassen?
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