替换触发器过程而不删除触发器



我有触发过程:

CREATE OR REPLACE FUNCTION my_func() RETURNS trigger AS
$BODY$
    // Do something :-)
    RAISE NOTICE 'Done';
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql;

它用于审计,我的数据库中的每个表都有调用该过程的触发器。

我想做的是删除"提高通知"行 - 似乎很简单,但事实并非如此。我尝试在没有该行的情况下将新过程插入数据库,认为"创建 od REPLACE"可以完成这项工作,但我的数据库中仍然只有旧版本。

我认为问题是由与程序相关的触发器引起的。

我是否必须 1. 删除所有触发器(超过 80 个表 => 80 个触发器:( ), 2. 用新版本替换程序, 3. 重新创建触发器?

还是有没有其他方法可以让"强制替代"?

DBMS: PostgreSQL 9.2.6

我想做的是删除"提高通知"行 - 似乎很简单,但事实并非如此。我尝试在没有该行的情况下将新过程插入数据库,认为"create od REPLACE"可以完成这项工作,但我的数据库中仍然只有旧版本。

不。要么在错误的数据库中安装了新函数,要么是错误的架构,要么是名称中有拼写错误,要么是无法提交更改,要么是错过了错误消息。

我经常替换触发器函数,它们与任何其他函数没有什么不同 - CREATE OR REPLACE工作得很好。

最新更新