32.42. triggers
La vue triggers contient tous les
déclencheurs définis dans la base de données courante dont un rôle
actuellement activé est le propriétaire ou dispose de certains droits
sur ces objets.
Tableau 32.40. Colonnes de triggers
|
Nom
|
Type de données
|
Description
|
|
trigger_catalog
|
sql_identifier
|
Nom de la base de données contenant le déclencheur
(toujours la base de données courante)
|
|
trigger_schema
|
sql_identifier
|
Nom du schéma contenant le déclencheur
|
|
trigger_name
|
sql_identifier
|
Nom du déclencheur
|
|
event_manipulation
|
character_data
|
Événement qui a exécuté le déclencheur (INSERT, UPDATE ou
DELETE)
|
|
event_object_catalog
|
sql_identifier
|
Nom de la base de données contenant la table où est défini
le déclencheur (toujours la base de données courante)
|
|
event_object_schema
|
sql_identifier
|
Nom du schéma contenant la table où est défini le
déclencheur
|
|
event_object_table
|
sql_identifier
|
Nom de la table où est défini le déclencheur
|
|
action_order
|
cardinal_number
|
Pas encore implémenté
|
|
action_condition
|
character_data
|
S'applique à une fonctionnalité non disponible dans
PostgreSQL™.
|
|
action_statement
|
character_data
|
Instruction exécutée par le déclencheur (actuellement
toujours EXECUTE PROCEDURE
function
(...))
|
|
action_orientation
|
character_data
|
Identifie si le déclencheur a été exécuté une fois pour
chaque ligne traitée ou une fois par instruction
(ROW ou STATEMENT)
|
|
condition_timing
|
character_data
|
Moment de l'exécution du déclencheur (BEFORE ou AFTER)
|
|
condition_reference_old_table
|
sql_identifier
|
S'applique à une fonctionnalité non disponible dans
PostgreSQL™.
|
|
condition_reference_new_table
|
sql_identifier
|
S'applique à une fonctionnalité non disponible dans
PostgreSQL™.
|
|
condition_reference_old_row
|
sql_identifier
|
S'applique à une fonctionnalité non disponible dans
PostgreSQL™
|
|
condition_reference_new_row
|
sql_identifier
|
S'applique à une fonctionnalité non disponible dans
PostgreSQL™
|
|
created
|
time_stamp
|
S'applique à une fonctionnalité non disponible dans
PostgreSQL™
|
Les déclencheurs dans PostgreSQL™ ont deux incompatibilités avec
le standard SQL qui affectent la représentation dans le schéma
d'information. Tout d'abord, les noms de déclencheurs sont locaux à
la table avec PostgreSQL™,
plutôt qu'indépendant des objets schéma. Du coup, il pourrait y avoir
des noms de déclencheurs dupliqués dans un schéma s'ils s'occupent de
tables différentes (trigger_catalog et
trigger_schema sont réellement les valeurs
restant dans la table sur laquelle est défini le déclencheur.)
Deuxièmement, les déclencheurs peuvent être définis pour s'exécuter
sur plusieurs événements dans PostgreSQL™ (c'est-à-dire ON INSERT OR UPDATE) alors que le standard SQL n'en
autorise qu'un. Si un déclencheur 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. Comme
conséquence de ces deux problèmes, la clé primaire de la vue
triggers est en fait (trigger_catalog, trigger_schema, trigger_name,
event_object_table, event_manipulation) au lieu de (trigger_catalog, trigger_schema, trigger_name), ce
que spécifie le standard SQL. Néanmoins, si vous définissez les
déclencheurs d'une manière conforme au standard SQL (des noms de
déclencheurs uniques dans le schéma et seulement un type d'événement
par déclencheur), ceci ne vous concernera pas.