La vue triggers contient tous les déclencheurs définis dans la base de données courante qu'un rôle actif possède ou pour lesquels il dispose de privilèges différents de SELECT.
Tableau 33.44. Colonnes de triggers
Nom | Type de données | Description |
---|---|---|
trigger_catalog | sql_identifier | Nom de la base de données qui contient le déclencheur (toujours la base de données courante) |
trigger_schema | sql_identifier | Nom du schéma qui contient le déclencheur |
trigger_name | sql_identifier | Nom du déclencheur |
event_manipulation | character_data | Événement qui a lancé le déclencheur (INSERT, UPDATE ou DELETE) |
event_object_catalog | sql_identifier | Nom de la base de données qui contient la table sur laquelle est défini le déclencheur (toujours la base de données courante) |
event_object_schema | sql_identifier | Nom du schéma qui contient la table sur laquelle est défini le déclencheur |
event_object_table | sql_identifier | Nom de la table sur laquelle est défini le déclencheur |
action_order | cardinal_number | Pas encore implanté |
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 | Indique si le déclencheur est exécuté une fois par 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 leur représentation dans le schéma d'information.
Premièrement, les noms des déclencheurs sont locaux à la table sous PostgreSQL™, et ne sont pas des objets du schéma indépendants. De ce fait, il peut exister des déclencheurs 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 déclencheur.)
Deuxièmement, les déclencheurs 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 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.
En conséquence, la clé primaire de la vue triggers est en fait (trigger_catalog, trigger_schema, trigger_name, event_object_table, event_manipulation) et non (trigger_catalog, trigger_schema, trigger_name) comme le spécifie le standard SQL. Néanmoins, si les déclencheurs sont définis de manière conforme au standard SQL (des noms de déclencheurs uniques dans le schéma et un seul type d'événement par déclencheur), il n'y a pas lieu de se préoccuper de ces deux incompatibilités.