Dans cet article, nous allons découvrir le concept de trigger en SQL et son implémentation à l'aide d'un exemple.
Un déclencheur dans le langage de requête structuré est un ensemble d'instructions procédurales exécutées automatiquement lorsqu'il y a un retour à certains événements sur la table dans la base de données. Les déclencheurs sont utilisés pour protéger l'intégrité des données dans la base de données.
Voyons la situation suivante pour comprendre le concept de trigger en SQL :
Supposons que Supriya soit le directeur des technologies de l'information dans une multinationale. Lorsque le dossier d'un nouvel employé est entré dans la base de données, elle doit envoyer le message « Félicitations » à chaque nouvel employé. S'il y a cinq ou six employés, Supriya peut le faire manuellement, mais si le nombre de nouveaux employés est supérieur à mille, alors dans une telle condition, elle doit utiliser le déclencheur dans la base de données.
Ainsi, Supriya doit créer le déclencheur dans la table, qui enverra automatiquement un message "Félicitations" aux nouveaux employés une fois leur enregistrement inséré dans la base de données.
Le déclencheur est toujours exécuté avec la table spécifique dans la base de données. Si nous supprimons la table, tous les déclencheurs associés à cette table sont également supprimés automatiquement.
Les déclencheurs dans le langage de requête structuré sont appelés uniquement avant que les événements ne se soient produits ou après que les événements ne se soient produits.
Seuls trois événements se produisent dans le déclencheur avant ou après les événements :les événements d'insertion, les événements de mise à jour ou les événements de suppression.
1. INSÉRER l'événement :L'événement d'insertion se produit chaque fois qu'un nouvel enregistrement est inséré dans la table.
2. Événement de MISE À JOUR :Un événement de mise à jour se produit chaque fois que les enregistrements existants sont mis à jour dans la table.
3. Événement SUPPRIMER : L'événement Delete se produit chaque fois que l'enregistrement est supprimé de la table.
Types de déclencheurs dans le langage de requête structuré
Voici les six types de déclencheurs utilisés dans le langage de requête structuré :
1. Déclencheur APRÈS INSÉRER :
Le déclencheur après insertion est appelé dans SQL après l'insertion des enregistrements dans la table.
2. Déclencheur APRÈS LA MISE À JOUR :
Le déclencheur après mise à jour est appelé dans SQL après la mise à jour des enregistrements existants dans la table.
3. Déclencheur APRÈS SUPPRESSION :
Le déclencheur après suppression est appelé dans SQL après la suppression de l'enregistrement de la table.
4. AVANT INSÉRER Déclencheur :
Le déclencheur avant insertion est appelé dans SQL avant que les enregistrements ne soient insérés dans la table.
5. Déclencheur AVANT LA MISE À JOUR :
Le déclencheur avant mise à jour est appelé dans SQL avant que les enregistrements existants dans la table ne soient mis à jour.
6. Déclencheur AVANT SUPPRESSION :
Le déclencheur avant suppression est appelé dans SQL avant que l'enregistrement ne soit supprimé de la table.
Syntaxe du déclencheur en SQL :
CREATE TRIGGER Trigger_Name
[BEFORE | AFTER] [Insert | Update | Delete]
ON [Table_Name]
[FOR EACH ROW | FOR EACH COLUMN]
AS
Set of SQL Statement
- Dans la syntaxe du déclencheur, nous devons définir le nom du déclencheur juste après le mot-clé CREATE TRIGGER dans la syntaxe.
- Après le nom du déclencheur, nous devons définir le déclencheur que nous voulons appeler, le déclencheur avant ou le mot-clé après le déclencheur avec le nom de l'événement.
- Ensuite, nous devons mentionner le nom de la table sur laquelle le déclencheur s'est produit.
- Après le nom de la table, nous devons définir le déclencheur au niveau de la ligne ou au niveau de la colonne.
- Et à la fin, nous devons écrire l'instruction SQL qui agit sur les événements qui se produisent.
Exemple de déclencheur en SQL
Pour comprendre le concept de déclencheur dans le SQL, nous devons créer une table sur laquelle le déclencheur doit être exécuté.
La requête suivante crée la table Student dans la base de données SQL.
CREATE TABLE Student(
Student_rollno INT NOT NULL PRIMARY KEY,
FirstName varchar(40),
English_Marks INT,
Physics_Marks INT,
Chemistry_Marks INT,
Biology_Marks INT,
Maths_Marks INT,
Total_Marks INT,
Percentage INT);
La requête suivante montre la structure de la table Student :
Étudiant DESC ;
Champ | Type | NULL | Clé | Par défaut | Extra |
Student_RollNo | INT | NON | PRI | NULL | |
Prénom | Varchar(40) | OUI | NULL | ||
English_Marks | INT | OUI | NULL | ||
Physics_Marks | INT | OUI | NULL | ||
Chemistry_Marks | INT | OUI | NULL | ||
Biology_Marks | INT | OUI | NULL | ||
Maths_Marks | INT | OUI | NULL | ||
Total_Marks | INT | OUI | NULL | ||
Pourcentage | INT | OUI | NULL |
La requête suivante déclenche le déclencheur avant l'insertion de l'enregistrement de l'étudiant dans la table :
CREATE TRIGGER Student _Marks
BEFORE INSERT
ON
Student
FOR EACH ROW
SET new.Total_Marks = new.English_Marks + new.Physics_Marks + new.Chemistry_Marks + new.Biology_Marks + new.Maths_Marks,
new.Percentage = ( new.Total_Marks / 500) * 100;
Les requêtes suivantes insèrent l'enregistrement dans la table Student.
INSERT INTO Student (Student_RollNo, First_Name, English_Marks, Physics_Marks, Chemistry_Marks,Biology_Marks, Maths_Marks, Total_Marks, Percentage) VALUES ( 1, ‘Raman’, 90, 80, 75, 70 ,92, 0, 0);
Pour vérifier la sortie de l'instruction INSERT ci-dessus, vous devez taper l'instruction SELECT suivante :
SELECT * FROM Student
Sortie :
Student_RollNo | Prénom | Marques_anglaises | Physics_Marks | Chemistry_Marks | Biologie_Marques | Maths_Marks | Total_Marks | Pourcentage |
1 | Raman | 90 | 80 | 75 | 70 | 92 | 407 | 81 |
Avantages des déclencheurs en SQL
Voici les trois principaux avantages des déclencheurs en langage de requête structuré :
- SQL offre un autre moyen de maintenir l'intégrité des données et du référentiel dans les tables.
- Les déclencheurs aident à exécuter automatiquement les tâches planifiées.
- Ils détectent les erreurs dans la couche de base de données de diverses entreprises.
- Ils permettent aux utilisateurs de la base de données de valider les valeurs avant l'insertion et la mise à jour.
Inconvénients des déclencheurs en SQL
Voici les principaux inconvénients des déclencheurs en langage de requête structuré :
- Ils ne sont pas compilés.
- Il n'est pas possible de trouver et de déboguer les erreurs dans les déclencheurs.
- Si nous utilisons le code complexe dans le déclencheur, cela ralentit l'exécution de l'application.
- Le déclencheur augmente la charge élevée sur le système de base de données.