sql >> Database teknologi >  >> RDS >> PostgreSQL

2 måder at liste alle triggere i en PostgreSQL-database

Her er to muligheder for at liste udløsere i en PostgreSQL-database.

information_schema.triggers Vis

Denne visning indeholder alle funktioner og procedurer i den aktuelle database, som den aktuelle bruger ejer eller har andre rettigheder end SELECT på.

Her er et eksempel på returnering af en liste over triggere:

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

Eksempelresultat:

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

Du er velkommen til at inkludere flere kolonner efter behov. For eksempel kan du inkludere action_statement kolonne for at inkludere triggerens definition.

pg_trigger Katalog

pg_catalog.pg_trigger Katalog gemmer udløsere på tabeller og visninger.

Her er et eksempel på kode, der returnerer en liste over triggere og deres tabel:

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

Det kan returnere en hel del triggere, afhængigt af databasen.

Vi kan indsnævre det til kun de triggere for en given tabel som denne:

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

Eksempelresultat:

+------------------------------+
|         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. Trin du skal tage, hvis du har et MySQL-udfald

  2. Fejl under afsendelse af QUERY-pakke

  3. POWER() Eksempler i SQL Server

  4. Ny funktion til BYOC – Pause og genoptagelse af klynger