Maison >base de données >tutoriel mysql >Explication détaillée des déclencheurs MySQL

Explication détaillée des déclencheurs MySQL

怪我咯
怪我咯original
2017-07-05 11:16:291467parcourir

Cet article présente principalement l'explication détaillée et des exemples simples des déclencheurs MySQL. Les amis dans le besoin peuvent se référer aux

Exemples simples de déclencheurs MySQL

Syntaxe

CREATE TRIGGER 58e8da683a191e3c88cfe7d78e93fa03 --Le déclencheur doit avoir un nom, jusqu'à 64 caractères, possible Il sera suivi de un délimiteur. Elle est fondamentalement similaire à la méthode de dénomination d'autres objets dans MySQL

{ AVANT | APRÈS } -- Déclencheur Il y a une exécution. réglage de l'heure : il peut être réglé avant ou après que l' événement se produise.

{ INSERT | UPDATE | DELETE } --Vous pouvez également définir les événements déclenchés : ils peuvent l'être lors de l'exécution d'une insertion, d'une mise à jour ou d'une suppression. gâchette moyenne.

ON ccc43248daffbac9770dee47fdaff697 --Le déclencheur appartient à une certaine table : lorsqu'une insertion, une mise à jour ou une suppression est effectuée sur cette table. L'opération provoque l'activation du déclencheur. Nous ne pouvons pas organiser deux déclencheurs pour le même événement dans la même table.

FOR EACH ROW --Intervalle d'exécution du déclencheur : la clause FOR EACH ROW notifie au déclencheur d'effectuer une action toutes les deux lignes au lieu d'une fois pour toute la table.

2628db81729a7deb7ac89f689a549741 --Le déclencheur contient l'instruction SQL à déclencher : l'instruction ici peut être n'importe quelle instruction légale, y compris les instructions composées, mais ici les instructions sont soumises aux mêmes restrictions que la fonction . --Vous devez disposer d'autorisations considérables pour créer un déclencheur (CREATE TRIGGER), si vous êtes déjà un utilisateur root, cela suffit. Ceci est différent du standard SQL.

Exemple

exemple1 :

Créer l'onglet de tableau1

DROP TABLE IF EXISTS tab1;
CREATE TABLE tab1(
  tab1_id varchar(11)
);
Créer l'onglet de tableau2

DROP TABLE IF EXISTS tab2;
CREATE TABLE tab2(
  tab2_id varchar(11)
);
Créer un déclencheur :

t_afterinsert_on_tab1

Fonction : Après avoir ajouté l'enregistrement de la table tab1, l'enregistrement sera automatiquement ajouté à la table tab2

DROP TRIGGER IF EXISTS t_afterinsert_on_tab1;
CREATE TRIGGER t_afterinsert_on_tab1 
AFTER INSERT ON tab1
FOR EACH ROW
BEGIN
   insert into tab2(tab2_id) values(new.tab1_id);
END;
Testez-le

INSERT INTO tab1(tab1_id) values('0001');
Regardez les résultats

SELECT * FROM tab1;
SELECT * FROM tab2;

exemple2 :

Créer un déclencheur : t_afterdelete_on_tab1

Fonction : Après suppression l'enregistrement de la table tab1 Supprimer automatiquement les enregistrements correspondants dans la table tab2

DROP TRIGGER IF EXISTS t_afterdelete_on_tab1;
CREATE TRIGGER t_afterdelete_on_tab1
AFTER DELETE ON tab1
FOR EACH ROW
BEGIN
   delete from tab2 where tab2_id=old.tab1_id;
END;
Testez-le

DELETE FROM tab1 WHERE tab1_id='0001';
Voir le résultat

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