triggers
#
La vue triggers
contient tous les triggers définis dans
la base de données actuelles sur les tables et vues que l'utilisateur actuel
possède ou sur lesquels il a d'autres droits que le SELECT
.
Tableau 35.55. Colonnes de triggers
Type de la colonne Description |
---|
Nom de la base contenant le trigger (toujours la base de données actuelle) |
Nom du schéma contenant le trigger |
Nom du trigger |
Événement qui déclenche le trigger ( |
Nom de la base contenant la table où le trigger est défini (toujours la base de données actuelle) |
Nom du schéma qui contient la table où le trigger est défini |
Nom de la table où le trigger est défini |
Déclencher parmi les triggers sur la même table qui ont les mêmes
|
La condition |
Instruction exécutée par le trigger (actuellement toujours
|
Indique si le trigger est exécuté une fois par ligne
traitée ou une fois par instruction ( |
Moment où le trigger se déclenche ( |
Nom de la table de transition « old », ou NULL sinon |
Nom de la table de transition « new », ou NULL sinon |
S'applique à une fonctionnalité non disponible dans PostgreSQL |
S'applique à une fonctionnalité non disponible dans PostgreSQL |
S'applique à une fonctionnalité non disponible dans PostgreSQL |
Les triggers dans PostgreSQL ont deux incompatibilités avec le standard SQL qui affectent leur représentation dans le schéma d'information.
Premièrement, les noms des triggers sont locaux à chaque
table sous PostgreSQL, et ne sont pas des objets
du schéma indépendants. De ce fait, il peut exister des triggers de même
noms au sein d'un schéma, pour peu qu'ils s'occupent de tables différentes.
(trigger_catalog
et trigger_schema
sont
les champs qui décrivent effectivement la table sur laquelle est défini le
trigger.)
Deuxièmement, les triggers peuvent être définis pour
s'exécuter sur plusieurs événements sous
PostgreSQL (c'est-à-dire ON INSERT OR
UPDATE
) alors que le standard SQL n'en autorise qu'un. Si un
trigger est défini pour s'exécuter sur plusieurs événements, il est
représenté sur plusieurs lignes dans le schéma d'information, une pour chaque
type d'événement.
En conséquence, la clé primaire de la vue triggers
est en fait
(trigger_catalog, trigger_schema, event_object_table,
trigger_name, event_manipulation)
et non (trigger_catalog,
trigger_schema, trigger_name)
comme le spécifie le standard SQL.
Néanmoins, si les triggers sont définis de manière conforme au
standard SQL (des noms de triggers uniques dans le schéma et un seul
type d'événement par trigger), il n'y a pas lieu de se préoccuper de ces
deux incompatibilités.
Avant PostgreSQL 9.1, les colonnes
action_timing
,
action_reference_old_table
,
action_reference_new_table
,
action_reference_old_row
et
action_reference_new_row
de cette vue
étaient nommées respectivement
condition_timing
,
condition_reference_old_table
,
condition_reference_new_table
,
condition_reference_old_row
et
condition_reference_new_row
. Cela
reflétaient leur nommage dans le standard SQL:1999. Le nouveau
nommage est conforme à SQL:2003 et les versions ultérieures.