Maison > base de données > tutoriel mysql > Comment pouvons-nous utiliser l'instruction SIGNAL avec les déclencheurs MySQL ?

Comment pouvons-nous utiliser l'instruction SIGNAL avec les déclencheurs MySQL ?

PHPz
Libérer: 2023-09-12 18:53:07
avant
1152 Les gens l'ont consulté

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

En fait, l'instruction MySQL SIGNAL est un mécanisme de gestion des erreurs utilisé pour gérer les événements inattendus et quitter l'application en douceur en cas de besoin. Fondamentalement, il fournit des informations sur les erreurs au gestionnaire. Sa syntaxe de base est la suivante -

SIGNAL SQLSTATE | condition_value
[SET signal_information_item = value_1,[, signal_information_item] = value_2,
etc;]
Copier après la connexion

Ici, le mot-clé SIGNAL est la valeur SQLSTATE ou le nom de la condition déclaré par l'instruction DECLARE CONDITION. Les instructions SIGNAL doivent toujours spécifier une valeur SQLSTATE ou une condition nommée définie à l'aide d'une valeur SQLSTATE. La valeur SQLSTATE d'une instruction SIGNAL se compose d'un code alphanumérique à cinq caractères. Nous ne pouvons pas démarrer notre propre code SQLSTATE avec "00" car une telle valeur indique un succès et n'a aucun effet sur le signalement d'une erreur. Si notre valeur n'est pas valide, une erreur Bad SQLSTATE se produira. Pour détecter toutes les erreurs, nous devons attribuer la valeur SQLSTATE "45000", ce qui signifie "Exception définie par l'utilisateur non gérée".

Pour illustrer l'utilisation de l'instruction SIGNAL avec les déclencheurs MySQL, nous utilisons l'exemple suivant dans lequel nous créons un déclencheur BEFORE INSERT sur la table Student_age. Si nous essayons de saisir un âge inférieur à 0, un message d'erreur sera généré à l'aide de l'instruction SIGNAL.

Exemple

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
Copier après la connexion

D'après l'ensemble de résultats ci-dessus, il est clair que si nous essayons d'insérer un âge inférieur à 0, l'utilisation de l'instruction SIGNAL générera une erreur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal