8

Click here to load reader

Introduction aux Triggers avec MySQL

Embed Size (px)

Citation preview

Page 1: Introduction aux Triggers avec MySQL

Les triggers avec MySQLPar Joseph ROUFF

Page 2: Introduction aux Triggers avec MySQL

Définition

“ Un déclencheur est un objet de base de données nommé, qui est associé à une table et qui s'active lorsqu'un événement particulier survient dans une table ”

Page 3: Introduction aux Triggers avec MySQL

Définition - 2Un Trigger est un bloc d'instructions SQL :

Il est rattaché à une seule table Il réagit à 3 événements : INSERT, UPDATE, DELETEIl s'exécute soit avant soit après un des ces événementsL'accession aux données modifiées via les événements est possible avec les mots-clés New.nom_colonne ou OLD.nom_colonne

Une table peut avoir 6 triggers Maximum

Page 4: Introduction aux Triggers avec MySQL

Création d'un Trigger

CREATE TRIGGER nom_trigger(1)

{ BEFORE | AFTER }

{ INSERT | UPDATE | DELETE }

ON nom_table(2)

FOR EACH ROW

requête_SQL(3)

1. Nom donné au Trigger, il lui sert d'identifiant

2. Nom de la table pour laquelle le trigger est affecté

3. La requête SQL à exécuter lors de l'activation du Trigger

Page 5: Introduction aux Triggers avec MySQL

Quand doit-on les utiliser ?

Les triggers sont souvent utilisés pour :Créer des rapports d'audit sur l'utilisation de la BDDPalier aux manques de certains moteurs de stockage (Intégrité référentielle)Accroître la sécurité des données

Page 6: Introduction aux Triggers avec MySQL

Création d'une « poubelle »

Objectif : Créer un trigger interceptant toutes les données supprimées pour les mettre dans une table « poubelle » afin d'éviter les suppression accidentelles.Importer la base de données « world »Créer la table deleted_cityAffecter à la table City le trigger nommé city_AD :

Utiliser l'événement DELETELe trigger sera invoqué ... après ... l'instruction DELETE

Page 7: Introduction aux Triggers avec MySQL

Création d'un système d'audit

Objectif : Créer un trigger permettant de compter le nombre de requêtes d'ajout, de mise à jour et de suppression effectués par jourCréer la table audit_cityAffecter à la table City les triggers suivant:

audit_city_AI (Evén. : INSERT, PE : AFTER)audit_city_AD (Evén. : DELETE, PE : AFTER)audit_city_AU (Evén. : UPDATE, PE : AFTER)

Page 8: Introduction aux Triggers avec MySQL

Emulation Intégrité Référentielle

Objectif : Créer un trigger permettant de vérifier si avant d'ajouter une ville, elle fait référence à un pays existant dans la table Country

Affecter à la table City le trigger verif_country_BI (Evén. : INSERT, PE : BEFORE)

Adopter la notation pour un trigger comportant plusieurs instructions SQL