Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Déclencheurs | Quelques Sujets Supplémentaires
Techniques Avancées en SQL
course content

Contenu du cours

Techniques Avancées en SQL

Techniques Avancées en SQL

1. Acid
2. Optimisation des Requêtes.Indexes
3. Quelques Sujets Supplémentaires

book
Déclencheurs

Déclencheurs dans les bases de données sont des types spéciaux de procédures stockées qui sont automatiquement exécutées ou déclenchées en réponse à certains événements ou actions se produisant dans la base de données.
Ces événements peuvent inclure des insertions, des mises à jour ou des suppressions de données dans les tables et des modifications des objets de schéma de base de données comme les tables ou les vues.

Remarque

Les déclencheurs ne peuvent pas être invoqués explicitement par les utilisateurs. Au lieu de cela, ils sont automatiquement exécutés en réponse aux opérations auxquelles ils sont associés.

Déclencheurs DML

Un déclencheur DML, également connu sous le nom de déclencheur de langage de manipulation de données, est un objet de base de données qui exécute automatiquement une action spécifiée lorsqu'un certain événement se produit sur une table ou une vue.
Les déclencheurs DML sont souvent utilisés pour appliquer des règles métier, maintenir l'intégrité des données ou effectuer des tâches d'audit.

Types de déclencheurs DML

  • Déclencheurs après : Ces déclencheurs se déclenchent après l'exécution de l'action de déclenchement (insertion, mise à jour, suppression) sur la table ;
  • Déclencheurs avant : Ces déclencheurs se déclenchent avant l'action de déclenchement. Ils vous permettent d'intercepter l'action originale et d'exécuter une logique personnalisée avant de décider de poursuivre ou non l'action originale.

Exemple de déclencheur après

Nous avons précédemment exploré un exemple d'utilisation d'une transaction pour ajouter des valeurs à la table BankAccounts et à la table UserLogs en tant qu'unité logique unique dans la première section de ce cours.
Maintenant, au lieu d'utiliser une transaction, nous pouvons réaliser cela en créant un déclencheur AFTER sur l'opération INSERT dans la table BankAccounts.
En conséquence, nous ne pourrons insérer que de nouveaux comptes, et la valeur de journal correspondante sera automatiquement ajoutée par le déclencheur.

Remarque

Dans les déclencheurs PostgreSQL, NEW est une variable d'enregistrement spéciale représentant la nouvelle ligne insérée ou mise à jour dans la table. Elle vous permet d'accéder aux valeurs des colonnes dans la nouvelle ligne au sein de la fonction de déclenchement.
Si nous travaillons avec des lignes supprimées, nous devons utiliser la variable d'enregistrement OLD au lieu de NEW.

Exemple de déclencheur avant

Supposons que nous voulons empêcher l'ajout de valeurs avec un solde de compte négatif. Nous pouvons créer un déclencheur BEFORE pour y parvenir. Ce déclencheur vérifiera le solde avant l'opération, et s'il est négatif, l'opération ne sera pas effectuée.

Modèle de création de déclencheur

Nous pouvons observer le modèle typique pour créer des déclencheurs : initialement, nous définissons une fonction pour exécuter une logique spécifique avant ou après une opération. Ensuite, nous associons cette fonction comme un déclencheur à une table et une action désignées.

Veuillez noter que dans l'instruction :

nous avons la flexibilité d'utiliser UPDATE ou DELETE, à la place de l'opération INSERT.
Mais faites attention que nous ne pouvons pas créer de déclencheurs SELECT car l'instruction SELECT ne modifie aucune ligne dans la table !

Quel est le principal objectif de l'utilisation des déclencheurs dans une base de données ?

Quel est le principal objectif de l'utilisation des déclencheurs dans une base de données ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 1
We're sorry to hear that something went wrong. What happened?
some-alt