A visão triggers contém todos os gatilhos definidos no banco de dados corrente que pertencem ao usuário corrente (O dono da tabela é o dono do gatilho). [1]
Tabela 30-35. Colunas de triggers
Nome | Tipo de dado | Descrição |
---|---|---|
trigger_catalog | sql_identifier | Nome do banco de dados que contém o gatilho (sempre o banco de dados corrente) |
trigger_schema | sql_identifier | Nome do esquema que contém o gatilho |
trigger_name | sql_identifier | Nome do gatilho |
event_manipulation | character_data | O evento que dispara o gatilho (INSERT, UPDATE ou DELETE) |
event_object_catalog | sql_identifier | Nome do banco de dados que contém a tabela onde o gatilho está definido (sempre o banco de dados corrente) |
event_object_schema | sql_identifier | Nome do esquema que contém a tabela onde o gatilho está definido |
event_object_name | sql_identifier | Nome da tabela onde o gatilho está definido |
action_order | cardinal_number | Ainda não implementado |
action_condition | character_data | Se aplica a uma funcionalidade não disponível no PostgreSQL |
action_statement | character_data | Declaração executada pelo gatilho (atualmente sempre EXECUTE PROCEDURE função(...)) |
action_orientation | character_data | Identifica se o gatilho dispara uma vez para cada linha processada ou uma vez para cada declaração (ROW ou STATEMENT) |
condition_timing | character_data | Momento em que o gatilho dispara (BEFORE ou AFTER) |
condition_reference_old_table | sql_identifier | Se aplica a uma funcionalidade não disponível no PostgreSQL |
condition_reference_new_table | sql_identifier | Se aplica a uma funcionalidade não disponível no PostgreSQL |
Os gatilhos no PostgreSQL possuem duas incompatibilidades com o padrão SQL que afetam a representação no esquema de informações: Em primeiro lugar, no PostgreSQL os nomes dos gatilhos são locais às tabelas, em vez de objetos independentes no esquema. Portanto, podem haver nomes de gatilhos duplicados definidos em um mesmo esquema, desde que pertençam a tabelas diferentes (trigger_catalog e trigger_schema são, na verdade, valores que pertencem à tabela onde o gatilho está definido); Em segundo lugar, no PostgreSQL os gatilhos podem ser definidos para disparar em vários eventos (por exemplo, ON INSERT OR UPDATE), enquanto o padrão SQL só permite um. Se o gatilho for definido para disparar em vários eventos, isto é representado por várias linhas no esquema de informações, uma para cada tipo de evento. Como conseqüência destas incompatibilidades, a chave primária da visão triggers na verdade é (trigger_catalog, trigger_schema, trigger_name, event_object_name, event_manipulation), em vez de (trigger_catalog, trigger_schema, trigger_name), conforme especificado pelo padrão SQL. Apesar disso, se os gatilhos forem definidos em conformidade com o padrão SQL (nomes de gatilho únicos no esquema e somente um evento por gatilho), estas incompatibilidades não trarão conseqüências.
[1] |
TRIGGERS — visão — Identifica os gatilhos definidos nas tabelas neste catálogo acessíveis por um determinado usuário ou grupo. (ISO-ANSI Working Draft) Information and Definition Schemas (SQL/Schemata), ISO/IEC 9075-11:2003 (E) (N. do T.) |