PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

2 maneiras de listar todos os gatilhos em um banco de dados PostgreSQL


Aqui estão duas opções para listar os gatilhos em um banco de dados PostgreSQL.

Os information_schema.triggers Visualizar


Esta visão contém todas as funções e procedimentos no banco de dados atual que o usuário atual possui ou tem algum privilégio diferente de SELECT em.

Aqui está um exemplo de retorno de uma lista de gatilhos:
SELECT
    trigger_schema,
    trigger_name,
    event_object_table
FROM 
    information_schema.triggers
ORDER BY 
    event_object_table;

Exemplo de resultado:
+----------------+-----------------------+--------------------+
| trigger_schema |     trigger_name      | event_object_table |
+----------------+-----------------------+--------------------+
| public         | last_updated          | actor              |
| public         | last_updated          | address            |
| public         | last_updated          | category           |
| public         | last_updated          | city               |
| public         | last_updated          | country            |
| public         | last_updated          | customer           |
| public         | film_fulltext_trigger | film               |
| public         | film_fulltext_trigger | film               |
| public         | last_updated          | film               |
| public         | last_updated          | film_actor         |
| public         | last_updated          | film_category      |
| public         | last_updated          | inventory          |
| public         | last_updated          | language           |
| public         | last_updated          | rental             |
| public         | last_updated          | staff              |
| public         | last_updated          | store              |
+----------------+-----------------------+--------------------+

Sinta-se à vontade para incluir mais colunas conforme necessário. Por exemplo, você pode incluir a action_statement coluna para incluir a definição do gatilho.

O pg_trigger Catálogo


O pg_catalog.pg_trigger catálogo armazena gatilhos em tabelas e exibições.

Aqui está um exemplo de código que retorna uma lista de gatilhos e sua tabela:
SELECT 
    tgname AS trigger_name,
    tgrelid::regclass AS table_name
FROM 
    pg_trigger
ORDER BY 
    table_name,
    trigger_name;

Isso pode retornar muitos gatilhos, dependendo do banco de dados.

Podemos reduzi-lo apenas aos gatilhos para uma determinada tabela como esta:
SELECT 
    tgname AS trigger_name
FROM 
    pg_trigger
WHERE
    tgrelid = 'public.film'::regclass
ORDER BY
    trigger_name;

Exemplo de resultado:
+------------------------------+
|         trigger_name         |
+------------------------------+
| RI_ConstraintTrigger_a_24890 |
| RI_ConstraintTrigger_a_24891 |
| RI_ConstraintTrigger_a_24900 |
| RI_ConstraintTrigger_a_24901 |
| RI_ConstraintTrigger_a_24915 |
| RI_ConstraintTrigger_a_24916 |
| RI_ConstraintTrigger_c_24907 |
| RI_ConstraintTrigger_c_24908 |
| RI_ConstraintTrigger_c_24912 |
| RI_ConstraintTrigger_c_24913 |
| film_fulltext_trigger        |
| last_updated                 |
+------------------------------+