【发布时间】:2014-01-16 14:45:47
【问题描述】:
我有触发程序:
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. 重新创建触发器?
或者还有其他方法可以“强制替换”吗?
数据库管理系统:PostgreSQL 9.2.6
【问题讨论】:
标签: postgresql triggers plpgsql postgresql-9.2