Documentation PostgreSQL 7.4.29 | ||||
---|---|---|---|---|
Précédent | Arrière rapide | Chapitre 35. Déclencheurs (triggers) | Avance rapide | Suivant |
Si vous exécutez des commandes SQL dans votre fonction SQL et que ces commandes accèdent à la table pour laquelle vous créez ce déclencheur, alors vous avez besoin de connaître les règles de visibilité du déclencheur car elles déterminent si les commandes SQL voient les données changées pour lesquelles est exécuté le déclencheur. Brièvement :
La modification des données (insertion, mise à jour ou suppression) ayant causé l'exécution du déclencheur n'est naturellement pas visible aux commandes SQL exécutées dans un déclencheur avant car ces modifications ne sont pas encore survenues.
Néanmoins, les commandes SQL exécutées dans un déclencheur avant verra les effets des modifications des données pour les lignes précédemment exécutées dans la même commande. Ceci demande une attention, car l'ordre des modifications n'est en général pas prévisible ; une commande SQL modifiant plusieurs lignes pourrait changer les lignes dans n'importe quel ordre.
Lorsqu'un déclencheur après est exécuté, toutes les modifications de données réalisées par la commande externe sont déjà terminées et sont visibles par les commandes SQL exécutées.
Il existe plus d'informations sur les règles de visibilité des données dans la Section 41.4. L'exemple dans la Section 35.4 contient une démonstration de ces règles.
Précédent | Sommaire | Suivant |
Déclencheurs (triggers) | Niveau supérieur | Écrire des fonctions déclencheurs en C |