在单独的事务中,INSERT INSERT触发器?

时间:2012-05-23 20:27:57

标签: postgresql transactions triggers

AFTER INSERT触发器(用pl / PGsql编写的函数)是否会在原始插入的单独事务中触发?

我关心的是触发器是否会出现某种异常 触发器可以回滚而不会影响原始插件吗?

2 个答案:

答案 0 :(得分:16)

所有PostgreSQL触发器都在与触发它们的事务相同的事务中执行。

修改:您还可以使用LISTEN + NOTIFY将触发器中的消息发送到在事务外部执行的代码。在这种情况下,消息将仅在成功提交时传递。侦听器中的错误不会回滚触发事务。

答案 1 :(得分:7)

触发程序在同一交易中作为关联的触发事件运行。但是触发程序的效果可以单独回滚。

您必须在后触发器中添加exception handling