SlideShare a Scribd company logo
1 of 8
Download to read offline
Les triggers avec MySQL
       Par Joseph ROUFF
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 ”
Définition - 2
Un Trigger est un bloc d'instructions SQL :
  Il est rattaché à une seule table
  Il réagit à 3 événements : INSERT, UPDATE,
  DELETE
  Il s'exécute soit avant soit après un des ces
  événements
  L'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
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
Quand doit-on les utiliser ?

Les triggers sont souvent utilisés pour :
   Créer des rapports d'audit sur l'utilisation de la BDD
   Palier aux manques de certains moteurs de stockage
   (Intégrité référentielle)
   Accroître la sécurité des données
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_city
Affecter à la table City le trigger nommé city_AD :
    Utiliser l'événement DELETE
    Le trigger sera invoqué ... après ... l'instruction DELETE
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 jour
Créer la table audit_city
Affecter à 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)
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

More Related Content

Viewers also liked

[JSS2015] - Document db et nosql
[JSS2015] - Document db et nosql[JSS2015] - Document db et nosql
[JSS2015] - Document db et nosqlGUSS
 
Bases de données réparties par la pratique
Bases de données réparties par la pratiqueBases de données réparties par la pratique
Bases de données réparties par la pratiqueAbdelouahed Abdou
 
Les bases fondamentales du langage transact sql
Les bases fondamentales du langage transact sqlLes bases fondamentales du langage transact sql
Les bases fondamentales du langage transact sqlZineb Meryem
 
Webinar Smile et Talend : Faites communiquer vos applications en temps réel
Webinar Smile et Talend  : Faites communiquer vos applications en temps réelWebinar Smile et Talend  : Faites communiquer vos applications en temps réel
Webinar Smile et Talend : Faites communiquer vos applications en temps réelSmile I.T is open
 
Alphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm.com Formation PostgreSQL, la Haute DisponibilitéAlphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm.com Formation PostgreSQL, la Haute DisponibilitéAlphorm
 
Alphorm.com Formation Microsoft SQL Server 2016 Business Intelligence (SSIS)
Alphorm.com Formation Microsoft SQL Server 2016 Business Intelligence (SSIS)Alphorm.com Formation Microsoft SQL Server 2016 Business Intelligence (SSIS)
Alphorm.com Formation Microsoft SQL Server 2016 Business Intelligence (SSIS)Alphorm
 
Alphorm.com Formation MySQL Administration(1Z0-883)
Alphorm.com   Formation MySQL Administration(1Z0-883)Alphorm.com   Formation MySQL Administration(1Z0-883)
Alphorm.com Formation MySQL Administration(1Z0-883)Alphorm
 
Alphorm.com Formation PL/SQL
Alphorm.com Formation PL/SQLAlphorm.com Formation PL/SQL
Alphorm.com Formation PL/SQLAlphorm
 
Alphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentaux
Alphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentauxAlphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentaux
Alphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentauxAlphorm
 

Viewers also liked (12)

[JSS2015] - Document db et nosql
[JSS2015] - Document db et nosql[JSS2015] - Document db et nosql
[JSS2015] - Document db et nosql
 
Bases de données réparties par la pratique
Bases de données réparties par la pratiqueBases de données réparties par la pratique
Bases de données réparties par la pratique
 
Triggers ppt
Triggers pptTriggers ppt
Triggers ppt
 
Les bases fondamentales du langage transact sql
Les bases fondamentales du langage transact sqlLes bases fondamentales du langage transact sql
Les bases fondamentales du langage transact sql
 
TRIGGERS
TRIGGERSTRIGGERS
TRIGGERS
 
Webinar Smile et Talend : Faites communiquer vos applications en temps réel
Webinar Smile et Talend  : Faites communiquer vos applications en temps réelWebinar Smile et Talend  : Faites communiquer vos applications en temps réel
Webinar Smile et Talend : Faites communiquer vos applications en temps réel
 
Trigger
TriggerTrigger
Trigger
 
Alphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm.com Formation PostgreSQL, la Haute DisponibilitéAlphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm.com Formation PostgreSQL, la Haute Disponibilité
 
Alphorm.com Formation Microsoft SQL Server 2016 Business Intelligence (SSIS)
Alphorm.com Formation Microsoft SQL Server 2016 Business Intelligence (SSIS)Alphorm.com Formation Microsoft SQL Server 2016 Business Intelligence (SSIS)
Alphorm.com Formation Microsoft SQL Server 2016 Business Intelligence (SSIS)
 
Alphorm.com Formation MySQL Administration(1Z0-883)
Alphorm.com   Formation MySQL Administration(1Z0-883)Alphorm.com   Formation MySQL Administration(1Z0-883)
Alphorm.com Formation MySQL Administration(1Z0-883)
 
Alphorm.com Formation PL/SQL
Alphorm.com Formation PL/SQLAlphorm.com Formation PL/SQL
Alphorm.com Formation PL/SQL
 
Alphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentaux
Alphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentauxAlphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentaux
Alphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentaux
 

Introduction aux Triggers avec MySQL

  • 1. Les triggers avec MySQL Par Joseph ROUFF
  • 2. 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 ”
  • 3. Définition - 2 Un Trigger est un bloc d'instructions SQL : Il est rattaché à une seule table Il réagit à 3 événements : INSERT, UPDATE, DELETE Il s'exécute soit avant soit après un des ces événements L'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
  • 4. 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
  • 5. Quand doit-on les utiliser ? Les triggers sont souvent utilisés pour : Créer des rapports d'audit sur l'utilisation de la BDD Palier aux manques de certains moteurs de stockage (Intégrité référentielle) Accroître la sécurité des données
  • 6. 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_city Affecter à la table City le trigger nommé city_AD : Utiliser l'événement DELETE Le trigger sera invoqué ... après ... l'instruction DELETE
  • 7. 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 jour Créer la table audit_city Affecter à 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)
  • 8. 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