PostgreSQL - Fonctions comme les déclencheurs

Table des matières
PostgreSQL nous permet d'utiliser différents langages pour exécuter des fonctions, cette fonctionnalité est très utile et en fait l'une des bases de données les plus flexibles et les plus puissantes, mais elle nous permet également de faire fonctionne comme déclencheur, c'est-à-dire des fonctions qui détectent automatiquement quelle action s'est produite et déclenchent une action différente, c'est-à-dire si nous insérons dans un tableau par exemple, un gâchette mettre à jour dans un autre, mettre une opération très basique de ce qu'est un déclencheur.
Fonctionne comme des déclencheurs
Aucun moteur de base de données valable ne devrait être sans la possibilité d'utiliser déclencheurs pour détecter et gérer automatiquement les changements de données. PostgreSQL propose des déclencheurs au niveau de l'instruction et de l'enregistrement; ceux qui sont au niveau de la phrase s'exécutent une fois pour chaque phrase, tandis que ceux qui sont au niveau des registres peuvent s'exécuter plusieurs fois, par exemple si on fait un METTRE À JOUR qui affecte 1 500 enregistrements, un déclencheur au niveau de la phrase ne s'exécuterait qu'une seule fois, tandis que le déclencheur d'enregistrement s'exécuterait jusqu'à 1 500 fois.
Un autre point important dans ce sujet est la distinction faite entre les instructions AVANT, DESPUES DE et la AU LIEU DE dans un déclencheur.
Un déclencheur qui fonctionne avec AVANT se déclenche avant l'exécution de la commande donnant la possibilité de modifier ou d'annuler ou de manipuler les données avant qu'elles ne changent, un APRÈS le déclenchement il est déclenché après l'exécution du changement, donnant ainsi la possibilité d'obtenir les données déjà modifiées, ce type de déclencheur est surtout utilisé dans les logs et les fonctions de réplication, le AU LIEU DU déclencheur Il s'exécute à la place de l'action qui serait normalement effectuée, une autre des particularités de ceci est qu'il ne fonctionne qu'avec les vues.
Construire une fonction avec un déclencheur
Comme lorsque nous parlons de fonctions, nous savons que nous pouvons utiliser d'autres langages pour les faire, dans le cas de fonctions telles que les déclencheurs, il est également possible d'utiliser presque n'importe quel langage, cependant le PL/pgSQL C'est un favori pour accomplir ces tâches, c'est pourquoi l'exemple suivant que nous verrons dans l'image sera réalisé dans cette langue, après avoir vu l'exemple, nous l'expliquerons en détail :

1. La fonction est définie comme un déclencheur et peut être utilisée dans n'importe quelle table comportant une colonne upd_ts. La valeur de cette colonne sera modifiée avant d'effectuer le retour. L'appel est fait lors de l'événement AVANT car s'il était utilisé dans le DESPUES DE toutes les modifications apportées au nouvel enregistrement seraient ignorées.
2. Le déclencheur se déclenchera avant que l'enregistrement ne soit stocké.
3. Cette fonctionnalité disponible uniquement dans PostgreSQL 9.0 ou supérieur nous permet de modifier uniquement les enregistrements qui ont réellement été affectés, dans les versions précédentes, il était nécessaire de faire des comparaisons entre les anciens et les nouveaux champs, cela n'est cependant pas pris en charge pour l'événement INSTEAD OF.
4. Nous relions le déclencheur à la table.
Avec cela, nous terminons ce tutoriel où nous avons vu comment créer un déclencheur qui sera implémenté dans une fonction, en plus de savoir quels événements nous pouvons utiliser lorsque nous en avons besoin.Avez-vous aimé et aidé ce tutoriel ?Vous pouvez récompenser l'auteur en appuyant sur ce bouton pour lui donner un point positif

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave