Это на Postgres 10.3 под AWS RDS.
В приведенных ниже выдержках я использую только public для search_path.
Я пытаюсь адаптировать существующий триггер события, определенный следующим образом:
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
Я чувствую, что, должно быть, мне не хватает чего-то простого. Я просто хочу создать это в публичной схеме.