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.