sql >> Database >  >> RDS >> PostgreSQL

2 manieren om alle triggers in een PostgreSQL-database op te sommen

Hier zijn twee opties om de triggers in een PostgreSQL-database op te sommen.

De information_schema.triggers Bekijk

Deze weergave bevat alle functies en procedures in de huidige database die de huidige gebruiker bezit of een ander privilege heeft dan SELECT Aan.

Hier is een voorbeeld van het retourneren van een lijst met triggers:

SELECT
    trigger_schema,
    trigger_name,
    event_object_table
FROM 
    information_schema.triggers
ORDER BY 
    event_object_table;

Voorbeeld resultaat:

+----------------+-----------------------+--------------------+
| 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              |
+----------------+-----------------------+--------------------+

Voel je vrij om meer kolommen op te nemen als dat nodig is. U kunt bijvoorbeeld de action_statement kolom om de definitie van de trigger op te nemen.

De pg_trigger Catalogus

De pg_catalog.pg_trigger catalogus slaat triggers op tabellen en weergaven op.

Hier is een voorbeeld van code die een lijst met triggers en hun tabel retourneert:

SELECT 
    tgname AS trigger_name,
    tgrelid::regclass AS table_name
FROM 
    pg_trigger
ORDER BY 
    table_name,
    trigger_name;

Dat kan nogal wat triggers opleveren, afhankelijk van de database.

We kunnen het beperken tot alleen die triggers voor een bepaalde tabel als volgt:

SELECT 
    tgname AS trigger_name
FROM 
    pg_trigger
WHERE
    tgrelid = 'public.film'::regclass
ORDER BY
    trigger_name;

Voorbeeld resultaat:

+------------------------------+
|         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                 |
+------------------------------+

  1. 2 voorbeelddatabases voor SQLite

  2. pgDash Diagnostische alternatieven - PostgreSQL-querybeheer met ClusterControl

  3. Is er een functie in oracle die lijkt op group_concat in mysql?

  4. Databasestatistieken SQL Server-update