Pour programmer des instructions sur leur base de données en fonction de certains événements, les experts data et développeurs peuvent utiliser la commande TRIGGER SQL.
Comment créer ce déclencheur ? Quels sont les différents types de triggers ? Quels sont ses avantages et inconvénients ? DataScientest répond à toutes vos questions.
Qu’est-ce qu’un trigger ?
Un trigger (ou déclencheur) est un un objet de base de données associé à une table. Dès lors que certains événements initialement prévus se déroulent, il exécute un ensemble d’instructions. Par exemple, il peut s’agir de déclencher le trigger dès lors qu’une ligne est ajoutée à la table, qu’une colonne est mise à jour, etc.
Quel que soit l’événement, l’objectif de cette fonction est d’automatiser différentes tâches au sein d’un Système de Gestion de Base de Données (SGBD).
Contrairement à la plupart des commandes SQL, le trigger n’est pas invoqué directement. Il dépend d’un événement tiers. C’est pourquoi, la procédure est stockée dans la base de données jusqu’à ce que ledit événement survienne réellement. Mais attention, il ne s’agit pas d’une procédure stockée traditionnelle. D’une part, parce que le trigger n’est pas invoqué ou exécuté manuellement. D’autre part, parce que les déclencheurs ne peuvent recevoir de paramètres. Enfin, parce qu’une transaction ne peut pas être validée ou annulée à l’intérieur d’un trigger.
Comment créer un trigger avec SQL ?
Vous pouvez utiliser TRIGGER SQL en écrivant la syntaxe ci-dessous :
CREATE TRIGGER trigger_name {BEFORE | AFTER} {INSERT | UPDATE| DELETE} ON table_name FOR EACH ROW trigger_body;
Il convient de décrire chacun de ces éléments :
- CREATE TRIGGER trigger_name : c’est l’envoi de la requête TRIGGER. Il s’agit alors de nommer votre déclencheur.
- {BEFORE | AFTER} : cela concerne la temporalité du déclencheur. Se déroulera-t-il avant ou après que l’événement n’apparaisse ?
- {INSERT | UPDATE| DELETE } : il s’agit de l’événement. En l’occurrence, ajouter, mettre à jour ou supprimer. Bien évidemment, il est possible de prévoir n’importe quel type d’événement.
- ON table_name : c’est la base de données concernée par la requête TRIGGER SQL.
- FOR EACH ROW : il s’agit de préciser les lignes affectées par le déclencheur.
- trigger_body : c’est la description de votre déclencheur. Que se passera-t-il si l’événement survient ?
Quels sont les différents types de trigger ?
Il existe 3 grandes catégories de déclencheurs sur SQL. À savoir :
- Les DDL triggers : DDL correspond à Data Définition Language (langage de définition des données). Les événements de commande correspondant aux DDL entraînent donc l’activation de ce type de trigger SQL. Par exemple : Create_table, Create_view, drop_table, Drop_view ou Alter_table.
- Les DML triggers : DML correspond à Data manipulation Language. Les événements associés sont insert_table, update_view, and delete_table. Dans ce cas, les triggers sont utilisés pour définir des règles relatives à la gestion et l’intégrité des données.
- Les logon triggers : ils correspondent à la création d’une session utilisateur avec une instance du serveur SQL.
Quels sont les avantages et les inconvénients des requêtes TRIGGER SQL ?
Les avantages des déclencheurs
Les triggers SQL sont largement utilisés pour la gestion des bases de données. Et ce, pour plusieurs raisons :
- L’intégrité des données : les déclencheurs définissent les règles relatives aux objets de la base de données. Dès lors que ces règles ne sont pas respectées, les triggers annulent automatiquement les modifications fautives. Par ailleurs, avant d’être intégrées ou mises à jour, les données sont toujours validées par le déclencheur qui vérifie qu’aucune règle n’empêche ces modifications.
- L’automatisation : les déclencheurs examinent toutes les données du SGBD. Dès lors que certains événements apparaissent, ils apportent des modifications automatiquement, sans aucune intervention humaine.
- Le suivi : les triggers SQL simplifient la tenue d’un journal des enregistrements.
- La simplicité : les déclencheurs n’ont pas besoin d’être compilés dans la base de données à chaque exécution. Ce faisant, ils réduisent le code, améliorent les performances des requêtes SQL et optimisent le temps de main-d’œuvre.
Les inconvénients des triggers SQL
Malgré tous les avantages susmentionnés, les déclencheurs SQL présentent aussi quelques limites à connaître. Les voici :
- Les validations étendues ne sont possibles qu’avec les triggers.
- Du fait de l’automatisation des triggers, les utilisateurs ne savent pas quand ils sont exécutés. Ce qui peut rendre la résolution de problèmes complexe.
- Lorsque de nombreux événements surviennent en même temps, les déclencheurs peuvent entraîner une augmentation de la charge du serveur.
- CREATE TRIGGER ne peut s’appliquer qu’à une seule table. Si vous souhaitez utiliser le même déclencheur pour plusieurs tables, il faudra ressaisir plusieurs fois la syntaxe.
Rejoignez DataScientest pour développer vos compétences avec SQL
Si les triggers SQL figurent parmi les requêtes incontournables du langage SQL, elles sont loin d’être les seules. Il y a également les commandes SELECT, DELETE, UPDATE… Les possibilités sont infinies. Alors pour maîtriser au mieux votre base de données, mieux se former à l’utilisation de ces différentes requêtes SQL. C’est justement possible à travers les formations DataScientest.