triggers
#視窗 triggers
包含目前資料庫中,使用者擁有的或擁有 SELECT
以外權限的表格和視窗上定義的所有觸發器。
表格 35.55. triggers
欄位
欄位類型 說明 |
---|
包含觸發器的資料庫名稱(永遠為目前資料庫) |
包含觸發器的綱要名稱 |
觸發器的名稱 |
觸發觸發器的事件( |
包含定義觸發器之表格的資料庫名稱(永遠為目前資料庫) |
包含定義觸發器之表格的綱要名稱 |
定義觸發器的表格名稱 |
在具有相同 |
觸發器的 |
由觸發器執行的陳述式(目前永遠為 |
識別觸發器是針對每個處理過的資料列觸發一次,還是針對每個陳述式觸發一次( |
觸發觸發器的時間( |
「舊」轉換表格的名稱,如果沒有則為空值 |
「新」轉換表格的名稱,如果沒有則為空值 |
適用於 PostgreSQL 中不可用的功能 |
適用於 PostgreSQL 中不可用的功能 |
適用於 PostgreSQL 中不可用的功能 |
PostgreSQL 中的觸發器與 SQL 標準有兩個不相容之處,這會影響資訊綱要中的表示。首先,觸發器名稱在本機中對於 PostgreSQL 中的每個表格都是唯一的,而不是獨立的綱要物件。因此,在一個綱要中可以定義重複的觸發器名稱,只要它們屬於不同的表格。(trigger_catalog
和 trigger_schema
實際上是與定義觸發器的表格相關的值。)其次,觸發器可以定義為在 PostgreSQL 中觸發多個事件(例如,ON INSERT OR UPDATE
),而 SQL 標準只允許一個。如果觸發器定義為觸發多個事件,則在資訊綱要中它表示為多個資料列,每個事件類型一個。由於這兩個問題,視窗 triggers
的主鍵實際上是 (trigger_catalog, trigger_schema, event_object_table, trigger_name, event_manipulation)
,而不是 SQL 標準指定的 (trigger_catalog, trigger_schema, trigger_name)
。儘管如此,如果您以符合 SQL 標準的方式定義觸發器(綱要中唯一的觸發器名稱,每個觸發器只有一種事件類型),這不會影響您。
在 PostgreSQL 9.1 之前的版本,這個檢視表的欄位 action_timing
、action_reference_old_table
、action_reference_new_table
、action_reference_old_row
和 action_reference_new_row
分別名為 condition_timing
、condition_reference_old_table
、condition_reference_new_table
、condition_reference_old_row
和 condition_reference_new_row
。那是它們在 SQL:1999 標準中的名稱。新的命名方式符合 SQL:2003 及以後的標準。
如果您在文件中發現任何不正確、與您使用特定功能的經驗不符或需要進一步澄清的地方,請使用此表格來回報文件問題。