PostgreSQLLa base de données la plus sophistiquée au monde.

45.38. pg_trigger

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

Tableau 45.38. Colonnes de pg_trigger

Nom Type Références Description
tgrelid oid pg_class.oid Table sur laquelle porte le déclencheur
tgname name   Nom du déclencheur (doit être unique parmi les déclencheurs d'une table)
tgfoid oid pg_proc.oid Fonction à appeler
tgtype int2   Masque de bits identifiant les conditions du déclencheur
tgenabled char   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.
tgisinternal bool   Vrai si le trigger est généré en interne (habituellement pour forcer la contrainte identifiée par tgconstraint)
tgconstrrelid oid pg_class.oid La table référencée par une contrainte d'intégrité référentielle
tgconstrindid oid pg_class.oid L'index supportant une contrainte unique, clé primaire ou d'intégrité référentielle
tgconstraint oid pg_constraint.oid L'entrée pg_constraint associé au trigger, si elle existe
tgdeferrable bool   Vrai si le déclencheur contrainte est retardable
tginitdeferred bool   Vrai si le déclencheur de contrainte est initialement retardé
tgnargs int2   Nombre de chaînes d'arguments passées à la fonction du déclencheur
tgattr int2vector pg_attribute.attnum numéros de colonne, si le trigger est spécifique à la colonne ; sinon un tableau vide
tgargs bytea   Chaînes d'arguments à passer au déclencheur, chacune terminée par un NULL
tgqual text   Arbre d'expression (d'après la représentation de nodeToString() pour la condition WHEN du trigger, ou NULL si aucune

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]

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]

Note

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