Créer un trigger

Pour créer un trigger dans MySql suite à une insertion de données avec enregistrement de données dans une autre table

$ .
> CREATE TRIGGER nom_du_trigger AFTER INSERT ON nom_de_la_table_a_surveiller
> FOR EACH ROW
> INSERT INTO nom_de_la_table (champs1, champs2, champs3) VALUES ( valeur1, valeur2, valeur3);

 

Pour créer un trigger dans MySql suite à une modification de données avec enregistrement de données dans
une autre table

$ .
> CREATE TRIGGER nom_du_trigger AFTER UPDATE ON nom_de_la_table_a_surveiller
> FOR EACH ROW
> INSERT INTO nom_de_la_table (champs1, champs2, champs3) VALUES ( valeur1, valeur2, valeur3);

Pour créer un trigger dans MySql suite à une suppression de données avec enregistrement de données dans
une autre table

$ .
> CREATE TRIGGER nom_du_trigger AFTER DELETE ON nom_de_la_table_a_surveiller
> FOR EACH ROW
> INSERT INTO nom_de_la_table (champs1, champs2, champs3) VALUES ( valeur1, valeur2, valeur3);


 
A la place du mot clé AFTER, nous pouvons également utiliser BEFORE qui exécute l'action avant l'évènement.
 
Pour récupérer les valeurs de la table surveillée utiliser les mots clés OLD et/ou NEW (OLD.nom_du_champ ou NEW.nom_du_champ)
 
Par exemple :

$ .
> CREATE TRIGGER mon_trigger AFTER INSERT ON ma_table
> FOR EACH ROW
> INSERT INTO ma_table_log (id_ajoute, valeur1_ajoutee, valeur2_ajoutee) VALUES ( NEW.id, NEW.valeur1,
NEW.valeur2);

 

Etiquettes: