Aller au contenu
Les triggersChapitre 11/11

Une règle que personne ne peut oublier

AttentionHors programme NSI. Comme les index, les triggers ne sont pas au programme du bac. Ce chapitre est là pour la suite : BTS SIO, IUT, licence d'informatique, ou un entretien technique.

Imagine la base d'un cinéma. Plusieurs programmes y écrivent : le site web, l'appli mobile, le logiciel de la caisse, et le petit script qu'un stagiaire a écrit un vendredi soir. Le cinéma veut trois choses :

  • Garder un historique : noter chaque film ajouté, chaque note modifiée.
  • Mettre à jour un stock : quand quelqu'un réserve 3 places, retirer 3 places à la séance.
  • Empêcher une valeur interdite : une note de 15/10, une réservation de plus de places qu'il n'en reste.

On pourrait demander à chaque programme de le faire lui-même. Mais il suffit qu'un seul oublie (le script du stagiaire, au hasard) pour que l'historique ait des trous et que la séance soit vendue deux fois.

La solution : mettre la règle dans la base elle-même. Un trigger (« déclencheur » en français) est un morceau de SQL rangé dans la base, qu'elle exécute toute seule chaque fois qu'un événement précis arrive sur une table. Comme une lumière à détecteur de mouvement : personne n'appuie sur l'interrupteur, c'est le passage qui l'allume.

Programme complet du cours SQL (11 chapitres, gratuit)
  1. 1. Découvrir SELECT et FROM : Les deux mots-clés de base pour lire des données dans une table.
  2. 2. Choisir ses colonnes : Renommer une colonne dans le résultat, et supprimer les doublons.
  3. 3. Filtrer avec WHERE : Ne garder que les lignes qui vérifient une ou plusieurs conditions.
  4. 4. Trier et limiter : Ranger le résultat dans un ordre choisi, et n'en garder qu'une partie.
  5. 5. Agréger les données : Compter, additionner, faire des moyennes, et regrouper par catégorie.
  6. 6. Clés primaires et étrangères : Identifier une ligne sans ambiguïté, et relier des tables entre elles.
  7. 7. Joindre plusieurs tables : Combiner deux tables liées par un identifiant commun en une seule requête.
  8. 8. Modifier les données : Ajouter, corriger et supprimer des lignes, avec le langage SQL, pas seulement le lire.
  9. 9. Créer une table : Définir soi-même la structure d'une nouvelle table, avant même d'y mettre des données.
  10. 10. Les index : Retrouver une ligne parmi un million sans tout lire : le principe de l'index, et son prix.
  11. 11. Les triggers : Faire réagir la base toute seule à chaque ajout, modification ou suppression.