我在我的數據庫中有十個表和五個觸發器。我不知道觸發器名稱,但我需要編輯觸發器。所以我需要知道哪個表被調用哪個觸發器?使用,如何檢查哪個表被調用postgresql中的哪個觸發器?
SELECT tgname
FROM pg_trigger;
我們可以打印所有的觸發器名稱。但它沒有顯示哪個表被調用哪個觸發器。任何人都可以向我解釋?
我在我的數據庫中有十個表和五個觸發器。我不知道觸發器名稱,但我需要編輯觸發器。所以我需要知道哪個表被調用哪個觸發器?使用,如何檢查哪個表被調用postgresql中的哪個觸發器?
SELECT tgname
FROM pg_trigger;
我們可以打印所有的觸發器名稱。但它沒有顯示哪個表被調用哪個觸發器。任何人都可以向我解釋?
以下查詢用於從informational_schema
獲取有關觸發器的信息。
select * from information_schema.triggers;
上述命令顯示trigger_catalog,trigger_schema,TRIGGER_NAME,event_manipulation,event_object_schema,event_object_table,action_statement,action_timing。
當我們使用下面的命令時,它只顯示「觸發器名稱和表名」。
test=> select trigger_name, event_object_table from information_schema.triggers;
trigger_name | event_object_table
-------------------------+--------------------
employees_trig1 | employees
emp_audit | emp_view
add_log_current_trigger | account_current
employees_trig2 | employees
emp_audit | emp_view
add_log_current_trigger | account_current
last_name_changes | employees
last_name_changes | employees
employees_trig1 | employees
emp_audit | emp_view
add_log_current_trigger | account_current
(11 rows)
這實際上是克雷格的答案的副本:http://dba.stackexchange.com/a/154685/1822 –
您可以使用下面的查詢,它會顯示用戶定義的觸發器的詳細說明。
SELECT event_object_table,trigger_name,event_manipulation,action_statement,action_timing FROM information_schema.triggers ORDER BY event_object_table,event_manipulation;
它會給出觸發器名稱,表名,事件操作,操作和操作時機。
請做[非crosspost](http://meta.stackexchange.com/q/64068/157328)您已經有兩個答案:http://dba.stackexchange.com/questions/154683/how-to- check-which-table-is-called-which-trigger-in-postgresql –