Ich möchte während einer Anfrage überprüfen, ob die Einschränkung eingehalten wird. Wenn sie nicht gesendet werden, anstatt eine ERROR-Nachricht zu senden, geben Sie einfach FALSE zurück. Wie würde ich das tun?SQL Constraint Verification Funktion
Beispiel der Tabelle Ich verwende:
CREATE TABLE tree (
name VARCHAR(64) UNIQUE PRIMARY KEY,
leaf INT CHECK (leaf > 0)
);
Beispiel der Funktionen I verwenden würde:
CREATE FUNCTION add_tree(name, nb_leaf) RETURNS BOOLEAN;
CREATE FUNCTION remove_leaf(tree_name, leaf_to_remove) RETURNS BOOLEAN;
In meiner Funktion wäre es zu repetitiv sein für den Namen
zu überprüfenIF EXISTS (SELECT name FROM tree WHERE name=tree_name) THEN...
Da habe ich schon eine UNIQUE-Einschränkung, aber wenn ich nicht überprüfe, bekomme ich natürlich die Fehlermeldung, wie kann ich nein t Verwenden Sie die Prüfung (IF ..) und nicht die Fehlermeldung, aber eine Rückgabe false statt, wenn die Eingabe falsch ist?
PS: Ich verwende postgresql, ob das etwas ändert
In Oracle können Sie Benutzerdefinieren erstellen ed Ausnahmen. Ich bin mir ziemlich sicher, dass dies auch im Nachhinein möglich sein muss. Wenn der Fehler ausgeführt wird, können Sie false – massie