【发布时间】:2018-10-07 06:21:10
【问题描述】:
我寻找一个在创建表后触发的事件触发器。我在这里找到了一些不错的帖子并进行了一些测试。我的问题是没有任何反应,没有错误也没有输出。所以请给我一些建议,我做错了什么。这是我的代码。 我是 postgres 的新手,来自 oracle,所以请原谅我这个可能“简单”的问题。
create table createt (tname char(20));
CREATE OR REPLACE FUNCTION insert()
RETURNS event_trigger
AS $$
DECLARE r RECORD;
BEGIN
r := pg_event_trigger_ddl_commands();
INSERT INTO createt VALUES(r.object_identity);
END;
$$
LANGUAGE plpgsql;
CREATE EVENT TRIGGER insert_event ON ddl_command_end
WHEN TAG IN ('CREATE TABLE')
EXECUTE PROCEDURE insert();
所以在这个测试用例中,我想把新创建的表的表名放在表 createt 中!但什么也没有发生。如何检查触发器是否已启动。或者我该如何调试这个功能?
感谢您的时间和建议。
【问题讨论】:
标签: postgresql function events plsql triggers