Maison  >  Article  >  base de données  >  Comment créer un déclencheur dans MySQL

Comment créer un déclencheur dans MySQL

清浅
清浅original
2019-04-28 14:59:176748parcourir

Pour créer un déclencheur dans MySQL, vous devez d'abord créer la table à stocker dans le déclencheur, puis définir l'heure à laquelle le déclencheur est activé, et enfin déclencher lorsque les conditions définies sont remplies, et exécuter les actions définies dans la collection d'instructions

Comment créer un déclencheur dans MySQL

[Cours recommandés : Tutoriel MySQL]

Trigger

Trigger est l'un des objets de la base de données MySQL. Il est très similaire aux fonctions des langages de programmation et nécessite une déclaration, une exécution, etc. Cependant, l'exécution d'un déclencheur n'est pas appelée par un programme ni démarrée manuellement, mais est déclenchée et activée par des événements pour réaliser l'exécution. Un peu similaire aux événements dans le DOM.

Création de déclencheurs

La syntaxe de création d'un déclencheur est la suivante :

CREATE <触发器名> < BEFORE | AFTER >
<INSERT | UPDATE | DELETE >
ON <表名> FOR EACH Row<触发器主体>

Analyse grammaticale

Nom du déclencheur

fait référence au nom du déclencheur et est unique dans la base de données (s'il est créé dans une base de données spécifique, le nom de la base de données doit à ajouter)

INSERT | UPDATE | DELETE

représente un événement déclencheur et est utilisé pour spécifier le type d'instruction qui active le déclencheur

INSERT : Insérer une nouvelle ligne Déclencheur activé lors de la table

DELETE : Déclencheur activé lorsqu'une ligne de données est supprimée de la table

UPDATE : Déclencheur activé lorsqu'une ligne de données dans la table est modifiée

AVANT | APRÈS

Le moment où le déclencheur est déclenché, indiquant si le déclencheur est déclenché avant ou après l'instruction qui l'active. Si vous souhaitez vérifier que les nouvelles données remplissent les conditions, utilisez l'option AVANT ; si vous souhaitez effectuer plusieurs modifications ou plus après l'exécution de l'instruction qui active le déclencheur, vous utilisez généralement l'option APRÈS.

Nom de la table

Le nom de la table associée au déclencheur Cette table doit être une table permanente. Les déclencheurs ne peuvent pas être associés à des tables ou des vues temporaires. Le déclencheur est activé lorsqu'un événement déclencheur se produit sur la table. La même table ne peut pas avoir deux déclencheurs avec le même temps de déclenchement et le même événement.

Corps du déclencheur

Corps de l'action du déclencheur, contenant l'instruction MySQL qui sera exécutée lorsque le déclencheur est activé. Si vous souhaitez exécuter plusieurs instructions, vous pouvez utiliser la structure d'instruction composée BEGIN…END.

FOR EACH ROW

fait référence au déclenchement au niveau de la ligne, et l'action de déclenchement doit être activée pour chaque ligne affectée par l'événement déclencheur.

Remarque : Un seul déclencheur peut être défini pour le même événement déclencheur au même moment de déclenchement dans la même table. Les déclencheurs ne peuvent être créés que sur des tables permanentes, pas sur des tables temporaires.

Comment créer un déclencheur dans MySQL

Exemple : Créez un déclencheur nommé double_salary

double_salary
   -> AFTER INSERT ON tb_emp1
   -> FOR EACH ROW
   -> INSERT INTO tb_emp2
   -> VALUES (NEW.id,NEW.name,deptId,2*NEW.salary);
Query OK, 0 rows affected (0.25 sec)

La signification du code ci-dessus est de créer un déclencheur double_salary, et la condition de déclenchement est de Après l'insertion données dans la table de données tb_emp1, insérez les mêmes données dans la table de données tb_emp2 et le salaire est le double de la valeur du champ de salaire nouvellement inséré dans tb_emp1.

Résumé : ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à tout le monde.

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!

Déclaration:
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