52.58. pg_trigger #

O catálogo pg_trigger armazena informações sobre os gatilhos existentes em tabelas e visões. Veja CREATE TRIGGER para obter mais informações.

Tabela 52.58. Colunas de pg_trigger

Coluna Tipo de dados

Descrição

oid oid

Identificador da linha

tgrelid oid (referencia pg_class.oid)

Tabela onde o gatilho se encontra

tgparentid oid (referencia pg_trigger.oid)

Gatilho pai do qual este gatilho é clonado (isto acontece quando são criadas ou anexadas partições a uma tabela particionada); zero se não for um clone

tgname name

Nome do gatilho (deve ser único entre os gatilhos da mesma tabela)

tgfoid oid (referencia pg_proc.oid)

Função a ser chamada

tgtype int2

Máscara de bits que identifica as condições de disparo do gatilho

tgenabled char

Controla em que modos de session_replication_role o gatilho dispara: O = o gatilho dispara nos modos origem e local, D = o gatilho está desativado, R = o gatilho dispara no modo replica, A = o gatilho sempre dispara.

tgisinternal bool

Verdade se o gatilho foi gerado internamente (geralmente, para impor a restrição identificada por tgconstraint)

tgconstrrelid oid (referencia pg_class.oid)

Tabela referenciada por uma restrição de integridade referencial (zero se o gatilho não for para uma restrição de integridade referencial)

tgconstrindid oid (referencia pg_class.oid)

Índice que dá suporte à restrição de unicidade, chave primária, integridade referencial ou de exclusão (zero se o gatilho não for para um desses tipos de restrição)

tgconstraint oid (referencia pg_constraint.oid)

A entrada em pg_constraint associada ao gatilho (zero se o gatilho não for para uma restrição)

tgdeferrable bool

Verdade se o gatilho de restrição for postergável

tginitdeferred bool

Verdade se o gatilho de restrição for inicialmente postergado

tgnargs int2

Número de cadeias de caracteres de argumento passadas para a função de gatilho

tgattr int2vector (referencia pg_attribute.attnum)

Números de coluna, se o gatilho for específico de coluna; caso contrário, uma matriz vazia

tgargs bytea

Cadeias de caracteres de argumentos a serem passadas para o gatilho, cada uma terminada em NULL

tgqual pg_node_tree

Árvore de expressão (na representação nodeToString()) para a condição WHEN do gatilho, ou nulo se nenhuma

tgoldtable name

Nome da cláusula REFERENCING para OLD TABLE, ou nulo se nenhum

tgnewtable name

Nome da cláusula REFERENCING para NEW TABLE, ou nulo se nenhum


No momento, o disparo específico de coluna tem suporte apenas para eventos UPDATE e, portanto, tgattr é relevante apenas para este tipo de evento. tgtype pode conter bits para outros tipos de evento também, mas presume-se que sejam de toda a tabela, independentemente do que esteja em tgattr.

Nota

Quando tgconstraint é diferente de zero, tgconstrrelid, tgconstrindid, tgdeferrable e tginitdeferred são amplamente redundantes com a entrada em pg_constraint referenciada. Entretanto, é possível que um gatilho não postergável seja associado a uma restrição postergável: restrições de chave estrangeira podem ter alguns gatilhos postergáveis ​​e outros não postergáveis.

Nota

pg_class.relhastriggers deverá ser verdade se a relação tiver algum gatilho neste catálogo.

Exemplo 52.32. Exemplo do tradutor

Gatilhos existentes em tabelas e visões

Uso do catálogo pg_trigger para mostrar os gatilhos existentes em tabelas e visões da usuária ana.

ana=> SELECT tgrelid::regclass AS tabela, tgname AS gatilho
ana-> FROM pg_trigger;

    tabela     |           gatilho
---------------+------------------------------
 autor         | RI_ConstraintTrigger_a_34403
 autor         | RI_ConstraintTrigger_a_34404
 literatura    | RI_ConstraintTrigger_c_34405
 literatura    | RI_ConstraintTrigger_c_34406
 pessoa_tipada | trg_imc_valor
 test          | gat_testa_validar_id
(6 linhas)