PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

2 sposoby na wyświetlenie listy wszystkich wyzwalaczy w bazie danych PostgreSQL

Oto dwie opcje wyszczególnienia wyzwalaczy w bazie danych PostgreSQL.

Wyzwalacze information_schema.triggers Zobacz

Ten widok zawiera wszystkie funkcje i procedury w bieżącej bazie danych, które aktualny użytkownik posiada lub ma uprawnienia inne niż SELECT na.

Oto przykład zwracania listy wyzwalaczy:

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

Przykładowy wynik:

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

W razie potrzeby możesz dodać więcej kolumn. Na przykład możesz dołączyć action_statement kolumna zawierająca definicję wyzwalacza.

pg_trigger Katalog

pg_catalog.pg_trigger katalog przechowuje wyzwalacze w tabelach i widokach.

Oto przykład kodu, który zwraca listę wyzwalaczy i ich tabelę:

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

To może zwrócić sporo wyzwalaczy, w zależności od bazy danych.

Możemy zawęzić to tylko do tych wyzwalaczy dla danej tabeli w następujący sposób:

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

Przykładowy wynik:

+------------------------------+
|         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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak działa pg_sleep_for() w PostgreSQL

  2. Funkcja AVG() w PostgreSQL

  3. jak stworzyć tabelę dat gregoriańskich ISO-8601 w postgresie

  4. Klucz obcy PostgreSQL nie istnieje, problem dziedziczenia?

  5. Postgres — Konwertuj listę sąsiedztwa na zagnieżdżony obiekt JSON