Créer et supprimer des déclencheurs dans MySQL

Déclencher la programmation dans MySQL


Déclencheurs ou communément appelés programmation des "déclencheurs" Ils sont un type d'objet trouvé dans les bases de données. Lorsqu'un certain événement ou opération est effectué dans ladite base de données, notre déclencheur exécute automatiquement une action pour laquelle nous l'avons préalablement programmé.

Les déclencheurs ils sont activés automatiquement lors de l'exécution des opérations INSERT, DELETE ou UPDATE, qui sont respectivement insertion, suppression ou mise à jour. Lors de l'exécution de l'une de ces actions, nos déclencheurs exécutent une instruction ou un bloc d'instructions pour lequel ils ont été préalablement programmés.

La structure d'un déclencheur dans MySQL est la suivante:

AGRANDIR

 [DEFINER = {utilisateur | CURRENT_USER}]
Cette partie du code indique au gestionnaire de base de données quel utilisateur a les privilèges pour pouvoir appeler nos déclencheurs lorsque des événements DML vont se produire. La valeur par défaut est CURRENT_USER.

Pour choisir le nom de notre trigger il y a un très bon critère à suivre qui est : Mettre d'abord le nom de la table, puis l'initiale de l'opération DML, (I pour Insert, D pour Delete ou U pour Update) et enfin le initiale à partir du moment de l'exécution (soit A pour après, soit B pour avant).

 AVANT | DESPUES DE
Il indique uniquement le moment où notre déclencheur sera exécuté, c'est-à-dire si le déclencheur est déclenché avant l'événement DML (avant) ou après (après).
 INSÉRER | SUPPRIMER | METTRE À JOUR
Il nous indique quelle sera la phrase que nous utiliserons pour déclencher notre déclencheur, Insérer pour saisir des données, Supprimer pour les supprimer ou Mettre à jour pour les modifier.
 ON nom de la table
Il indique la table associée à notre déclencheur.
 POUR CHAQUE RANG
Il nous indique seulement que le déclencheur va être exécuté pour chaque ligne de notre table précédemment définie dans le ON.

La déclaration SQL finale ou le bloc d'instructions sera la ou les phrases que notre déclencheur exécutera lorsqu'il entrera en action.

Exemple pratique de déclencheur


Nous allons maintenant voir un exemple pratique de la façon de programmer un déclencheur pour vendre des billets de bus pour un certain trajet alors qu'il y a des places libres.
Nous pouvons utiliser n'importe quel logiciel qui accepte les déclencheurs et les processus stockés.

1er Nous créons une base de données:

2e de suite nous créons deux tables dans notre base de données. L'un d'eux est l'endroit où nous stockerons les billets vendus et l'autre est créé afin que nous puissions savoir combien de billets sont disponibles pour le voyage donné.

Voici le tableau qui contiendra les informations concernant le nombre de billets vendus :

Ensuite, nous créons le tableau où nous enregistrons les informations sur le nombre de billets disponibles pour chaque voyage spécifique :

3e maintenant nous créons le tableau pour mémoriser les différents trajets :

4ème Après avoir créé la base de données et les tables, nous allons créer la requête SQL du déclencheur, mais avant cela, nous devons savoir quelles sont les Identifiants NOUVEAU et ANCIEN dans les déclencheurs.

Pour que notre déclencheur soit lié à une ou plusieurs colonnes spécifiques de la table, nous devons utiliser les identifiants mentionnés ci-dessus NEW AND OLD.
VIEILLE: indique l'ancienne valeur de la colonne
NOUVEAU: la nouvelle valeur qu'il pourrait prendre.
Exemple: OLD.idtrip ou NEW.idtrip.

Avec la instruction INSERT Nous ne pouvons utiliser que l'identifiant NEW car avec INSERT la fonction qui est générée est d'introduire de nouvelles valeurs dans la ou les colonnes.
Si nous utilisons le instruction SUPPRIMER dans ce cas, nous devons utiliser l'identifiant OLD car avec DELETE nous supprimons des valeurs qui existaient déjà auparavant.
En revanche, si on utilise le Instruction UPDATE Nous pouvons utiliser OLD et NEW, car nous pouvons faire référence à des valeurs anciennes ou nouvelles car nous modifierons des enregistrements qui existaient déjà pour d'autres valeurs.

Maintenant que nous comprenons les identifiants, l'instruction SQL ressemblerait à ceci :

Si nous exécutons l'instruction SQL dans un programme qui la prend en charge, nous verrions qu'en effet le déclencheur a été créé.

Afin de voir comment cela fonctionne, nous introduisons quelques valeurs logiques pour un trajet en bus, par exemple :

Ici, j'ai entré dans le voyage avec l'identifiant numéro 1 qu'il y a 45 places disponibles.

Après cela, nous vendons un billet, par exemple le billet qui correspond au siège 14 :

Lors de cette requête, si nous allons dans le champ current_availability, nous verrons que 45 est passé à 44, puisque le déclencheur 'update_availability' a été activé.

Le avantages de l'utilisation de déclencheurs est que différents cas d'utilisation peuvent être programmés et que l'intégrité de la base de données est maintenue, c'est-à-dire que cela nous donne la possibilité de créer des routines qui exécutent certaines actions automatiquement sans avoir besoin de le faire manuellement. Ce serait très valable pour la validation de tout type d'information ou pour faire un suivi des mouvements de la base de données.

Un autre exemple très intéressant comme je viens de le mentionner dans les validations est de déterminer un âge de majorité avant de faire une phrase, par exemple :

Après avoir vu les exemples de création de déclencheurs, il faut savoir comment accéder aux informations du déclencheur. Pour cela, nous utiliserons les phrases :

Pour voir les déclencheurs dans notre base de données :

 AFFICHER LES DÉCLENCHEURS
En revanche, si nous voulons voir les informations du déclencheur qui a été créé pour le moment :
 SHOW CREATE TRIGGER student_BU_trigger
Enfin, après avoir vu comment les triggers sont créés et affichés, nous allons voir quelle est l'instruction utilisée pour éliminer un trigger que nous avons dans notre base de données.
Pour ce faire, il suffit d'utiliser la commande delete typique : tomber.
 DROP TRIGGER [IF_EXISTS] nom_déclencheur

Avez-vous aimé et aidé ce tutoriel ?Vous pouvez récompenser l'auteur en appuyant sur ce bouton pour lui donner un point positif
wave wave wave wave wave