Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie können wir die SIGNAL-Anweisung mit MySQL-Triggern verwenden?

PHPz
Freigeben: 2023-09-12 18:53:07
nach vorne
1110 Leute haben es durchsucht

我们如何将 SIGNAL 语句与 MySQL 触发器一起使用?

Tatsächlich handelt es sich bei der MySQL SIGNAL-Anweisung um einen Fehlerbehandlungsmechanismus, der dazu dient, unerwartete Ereignisse zu behandeln und die Anwendung bei Bedarf ordnungsgemäß zu beenden. Im Grunde stellt es dem Handler Fehlerinformationen zur Verfügung. Die grundlegende Syntax lautet wie folgt:

SIGNAL SQLSTATE | condition_value
[SET signal_information_item = value_1,[, signal_information_item] = value_2,
etc;]
Nach dem Login kopieren

Hier ist das Schlüsselwort SIGNAL der SQLSTATE-Wert oder der Bedingungsname, der durch die DECLARE CONDITION-Anweisung deklariert wird. SIGNAL-Anweisungen müssen immer einen SQLSTATE-Wert oder eine benannte Bedingung angeben, die mithilfe eines SQLSTATE-Werts definiert wird. Der SQLSTATE-Wert für eine SIGNAL-Anweisung besteht aus einem fünfstelligen alphanumerischen Code. Wir können unseren eigenen SQLSTATE-Code nicht mit „00“ beginnen, da ein solcher Wert einen Erfolg anzeigt und keine Auswirkung auf die Signalisierung eines Fehlers hat. Wenn unser Wert ungültig ist, tritt ein Bad SQLSTATE-Fehler auf. Für die Behandlung aller Fehler sollten wir dem SQLSTATE-Wert „45000“ zuweisen, was „Unbehandelte benutzerdefinierte Ausnahme“ bedeutet.

Um die Verwendung der SIGNAL-Anweisung mit MySQL-Triggern zu veranschaulichen, verwenden wir das folgende Beispiel, in dem wir einen BEFORE INSERT-Trigger für die Tabelle Student_age erstellen. Wenn wir versuchen, ein Alter kleiner als 0 einzugeben, wird mithilfe der SIGNAL-Anweisung eine Fehlermeldung ausgegeben.

Beispiel

mysql> Create trigger before_insert_studentage BEFORE INSERT on
student_age FOR EACH ROW BEGIN IF NEW.age<0 then SIGNAL SQLSTATE
&#39;45000&#39; SET MESSAGE_TEXT = &#39;age less than 0&#39;; END if; END; //
Query OK, 0 rows affected (0.12 sec)

mysql> Insert into student_age(age, name) values(-10,&#39;gaurav&#39;)//
ERROR 1644 (45000): age less than 0
Nach dem Login kopieren

Aus der obigen Ergebnismenge geht hervor, dass die Verwendung der SIGNAL-Anweisung einen Fehler auslöst, wenn wir versuchen, ein Alter unter 0 einzufügen.

Das obige ist der detaillierte Inhalt vonWie können wir die SIGNAL-Anweisung mit MySQL-Triggern verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage