postgreSQL 9.4如何从触发器回滚

时间:2015-05-28 15:11:38

标签: sql postgresql postgresql-9.4

我有一个函数insert_val,它将一些值插入到某些表中。这些表具有触发器,当出现错误时会引发异常。每当触发器引发异常并转到下一个curs1时,如何回滚该函数?这可能吗?提前致谢

script:
  - python setup.py test
  - if [[ $TRAVIS_PYTHON_VERSION == '3.4' ]]; then (cd src && CC=gcc-4.8 CXX=g++-4.8 make -f Makefile-custom test); fi

1 个答案:

答案 0 :(得分:0)

您无法从触发器或函数ROLLBACK,因为在函数内无法进行事务控制。

您实际上想要的是在异常后跳过并继续。您可以使用PL / PgSQL per the manual中的BEGIN ... EXCEPTION块来执行此操作。在内部,它使用子转换,就像SAVEPOINTROLLBACK TO SAVEPOINT