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

51.58. pg_trigger #

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

Tableau 51.58. Colonnes de pg_trigger

Type

Description

oid oid

Identifiant de ligne

tgrelid oid (référence pg_class.oid)

Table sur laquelle porte le trigger

tgparentid oid (référence pg_trigger.oid)

Trigger parent à partir duquel ce trigger est cloné (ceci survient quand les partitions sont créées ou attachées à une table partitionnée), zéro si ce n'est pas un clone.

tgname name

Nom du trigger (doit être unique parmi les triggers d'une table)

tgfoid oid (référence pg_proc.oid)

Fonction à appeler

tgtype int2

Masque de bits identifiant les conditions de déclenchement

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 (référence pg_class.oid)

La table référencée par une contrainte d'intégrité référentielle (zéro si le trigger n'a pas pour but une contrainte d'intégrité référentielle)

tgconstrindid oid (référence pg_class.oid)

L'index supportant une contrainte unique, clé primaire, clé d'intégrité référentielle, contrainte d'exclusion (zéro si le trigger ne concerne pas un de ces types de contrainte)

tgconstraint oid (référence pg_constraint.oid)

L'entrée pg_constraint associé au trigger, si elle existe

tgdeferrable bool

Vrai si le trigger contrainte est retardable

tginitdeferred bool

Vrai si le trigger de contrainte est initialement retardé

tgnargs int2

Nombre de chaînes d'arguments passées à la fonction du trigger

tgattr int2vector (référence 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 trigger, chacune terminée par un NULL

tgqual pg_node_tree

Arbre d'expression (d'après la représentation de nodeToString() pour la condition WHEN du trigger, ou NULL si aucune

tgoldtable name

Nom de la clause REFERENCING pour OLD TABLE, ou NULL si aucun

tgnewtable name

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 référencée de pg_constraint. 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.