15

触发器(用 pl/ PGsqlAFTER INSERT编写的函数)会在与原始插入不同的事务中触发吗?

我担心的是触发器是否遇到某种异常。
可以回滚触发器而不影响原始插入吗?

4

2 回答 2

27

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

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

于 2012-05-23T20:39:06.197 回答
10

触发过程与关联的触发事件在同一事务中运行。但是触发过程的效果可以单独回滚。

您必须将异常处理添加到后触发器。

于 2012-05-24T02:37:33.653 回答