PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 12.18 » Internes » Catalogues système » pg_trigger

51.57. pg_trigger

Le catalogue pg_trigger stocke les informations concernant les déclencheurs des tables et des vues. Voir la commande CREATE TRIGGER pour plus d'informations.

Tableau 51.57. Colonnes de pg_trigger

NomTypeRéférencesDescription
oidoid Identifiant de ligne
tgrelidoidpg_class.oidTable sur laquelle porte le déclencheur
tgnamename  Nom du déclencheur (doit être unique parmi les déclencheurs d'une table)
tgfoidoidpg_proc.oidFonction à appeler
tgtypeint2 Masque de bits identifiant les conditions de déclenchement
tgenabledchar  Contrôle l'exécution du trigger suivant le mode session_replication_role. O = le trigger se déclenche dans les modes « origin » et « local », D = le trigger est désactivé, R = le trigger s'exécute en mode « replica », A = le trigger s'exécute à chaque fois.
tgisinternalbool Vrai si le trigger est généré en interne (habituellement pour forcer la contrainte identifiée par tgconstraint)
tgconstrrelidoidpg_class.oidLa table référencée par une contrainte d'intégrité référentielle
tgconstrindidoidpg_class.oidL'index supportant une contrainte unique, clé primaire, clé d'intégrité référentielle, contrainte d'exclusion
tgconstraintoidpg_constraint.oidL'entrée pg_constraint associé au trigger, si elle existe
tgdeferrablebool Vrai si le déclencheur contrainte est retardable
tginitdeferredbool Vrai si le déclencheur de contrainte est initialement retardé
tgnargsint2 Nombre de chaînes d'arguments passées à la fonction du déclencheur
tgattrint2vectorpg_attribute.attnumnuméros de colonne, si le trigger est spécifique à la colonne ; sinon un tableau vide
tgargsbytea  Chaînes d'arguments à passer au déclencheur, chacune terminée par un NULL
tgqualpg_node_tree Arbre d'expression (d'après la représentation de nodeToString() pour la condition WHEN du trigger, ou NULL si aucune
tgoldtablename Nom de la clause REFERENCING pour OLD TABLE, ou NULL si aucun
tgnewtablename Nom de la clause REFERENCING pour NEW TABLE, ou NULL si aucun

Actuellement, les triggers spécifiques par colonne sont supportés seulement pour les événements UPDATE et, du coup, tgattr est valable seulement pour ce type d'événements. tgtype pourrait contenir des informations pour d'autres types d'événement mais ils sont supposés valides pour la table complète, quel que soit le contenu de tgattr.

Note

Quand tgconstraint est différent de zéro, tgconstrrelid, tgconstrindid, tgdeferrable et tginitdeferred sont grandement redondants avec l'entrée pg_constraint référencée. Néanmoins, il est possible qu'un trigger non déferrable soit associé à une contrainte déferrable : les contraintes de clé étrangère peuvent avoir quelques triggers déferrables et quelques triggers non déferrables.

Note

pg_class.relhastriggers doit valoir true si la relation possède au moins un trigger dans ce catalogue.