Maison > base de données > tutoriel mysql > le corps du texte

MySQL Advanced 8 - Utilisation des déclencheurs

黄舟
Libérer: 2016-12-29 16:42:47
original
1174 Les gens l'ont consulté

Un déclencheur est une procédure stockée spéciale qui déclenche l'exécution lors de l'insertion, de la suppression ou de la modification de données dans une table spécifique. Il possède des capacités de contrôle de données plus sophistiquées et complexes que les fonctions standard de la base de données elle-même.

Il présente les caractéristiques suivantes :

Emplacement de surveillance : généralement le nom de la table

Événement de surveillance : mettre à jour/supprimer/insérer

Heure de déclenchement : après/ before

événement déclencheur : update/delete/insert

Il ne peut pas être appelé directement, il est activement exécuté par la base de données.

exemple1 :

Créer un onglet de tableau1

DROP TABLE IF EXISTS tab1;
CREATE TABLE tab1(
    tab1_id varchar(11)
);
Copier après la connexion

Créer un onglet de tableau2

DROP TABLE IF EXISTS tab2;
CREATE TABLE tab2(
    tab2_id varchar(11)
);
Copier après la connexion

Créer un déclencheur : t_afterinsert_on_tab1

Fonction : Après avoir ajouté les enregistrements dans la table tab1, ajoutez automatiquement les enregistrements à 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;
Copier après la connexion

Testez-le

INSERT INTO tab1(tab1_id) values('0001');
Copier après la connexion


Voir les résultats
SELECT * FROM tab1;
SELECT * FROM tab2;
Copier après la connexion
Copier après la connexion

exemple2 :

Créer un déclencheur : t_afterdelete_on_tab1

Fonction : Après avoir supprimé l'enregistrement de la table tab1, l'enregistrement correspondant dans la table tab2 sera automatiquement supprimé

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

Testez

DELETE FROM tab1 WHERE tab1_id='0001';
Copier après la connexion


et voyez le résultat
SELECT * FROM tab1;
SELECT * FROM tab2;
Copier après la connexion
Copier après la connexion

Ce qui précède est le contenu de MySQL Advanced 8 - l'utilisation de déclencheurs, plus de contenu connexe Veuillez faire attention au site Web PHP chinois (www.php.cn) !


Étiquettes associées:
source:php.cn
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