2013-10-17 98 views
0

我正在使用PostgreSQL 9.2,我需要编写一个INSERT语句,它将表A中的数据复制到表B,而不触发表B上定义的INSERT触发器(可能是某种批量插入操作??)。不触发INSERT触发器的INSERT语句

在这个特定的表(表B)上执行了许多INSERT,UPDATE和DELETE操作。在每次执行过程中,都必须触发触发器。

由于标准的日常DML操作,我不能临时禁用触发器。

任何人都可以帮我用这个非触发INSERT语句的语法吗?

回答

1

以不同的用户身份运行“特权”插入。这样你的触发器可以检查当前用户并退出,如果它不应该做任何事情。

+0

然后你需要给我们一个暗示,“正常”插入和“特殊”插入之间有什么不同。 –

+0

由于触发了其他插入,因此标准插入必须触发触发器。这个“特殊插入”仅用于表格。 问题是同一用户(来自同一应用程序)必须执行“标准”和“特殊”插入。 我想知道是否有任何方式让同一个用户执行插入,但有些是'正常'(触发器会触发),有些不是(触发器不会触发)。 –

+0

我会再试一次。什么是两种类型的插入不同?如果您打印了两个查询并将它们显示给我,我将如何分辨哪个是哪个? –