[英]Created an event trigger in Postgres but doesn't show up?
這是AWS RDS下的Postgres 10.3。
在下面的摘錄中,我僅對search_path使用public。
我正在嘗試修改一個現有的事件觸發器,其定義如下:
CREATE EVENT TRIGGER update_last_modified ON ddl_command_end
WHEN tag IN ('CREATE TABLE')
EXECUTE PROCEDURE mll_audit();
它是在過去的某個時間創建的,並顯示如下:
=> \df *modified*
List of functions
Schema | Name | Result data type | Argument data types | Type
--------+----------------------+------------------+---------------------+---------
public | update_last_modified | trigger | | trigger
新觸發器將調用一個新過程,但是暫時,我只是在嘗試驗證是否可以創建一個過程:
CREATE EVENT TRIGGER deltest_update_last_modified ON ddl_command_end
WHEN tag IN ('CREATE TABLE')
EXECUTE PROCEDURE mll_audit();
顯然,這會很好,但不會出現:
=> CREATE EVENT TRIGGER deltest_update_last_modified ON ddl_command_end
WHEN tag IN ('CREATE TABLE')
EXECUTE PROCEDURE mll_audit();
CREATE EVENT TRIGGER
rwe=> \df *deltest*modified*
List of functions
Schema | Name | Result data type | Argument data types | Type
--------+------+------------------+---------------------+------
(0 rows)
=> \df *modified*
List of functions
Schema | rwe=> \df *deltest*modified*
List of functions
Schema | Name | Result data type | Argument data types | Type
--------+------+------------------+---------------------+------
(0 rows)
=> \df *modified*
List of functions
Schema | Name | Result data type | Argument data types | Type
--------+----------------------+------------------+---------------------+---------
public | update_last_modified | trigger | | trigger
(1 row)
=> select proname from pg_proc where proname like '%modified%';
proname
----------------------
update_last_modified
(1 row)
如果我嘗試重新創建而不刪除它,它會錯誤地指出它已經存在:
=> CREATE EVENT TRIGGER deltest_update_last_modified ON ddl_command_end
-> WHEN tag IN ('CREATE TABLE')
-> EXECUTE PROCEDURE mll_audit();
ERROR: event trigger "deltest_update_last_modified" already exists
我覺得我必須缺少一些基本知識。 我只想在公共架構中創建它。
\\df
列出函數,而不是事件觸發器。 \\dy
用於列出事件觸發器。 您碰巧也有一個名為update_last_modified
的函數(也許是無意間發生的)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.