在 Postgres 中尝试 catch 等价物

Fas*_*tle 17 postgresql error-handling plpgsql postgresql-9.6

我们在 Postgres 中有一个 try catch 等价物吗?我编写了一些由触发器调用的用户定义函数。我(不想)想忽略错误,以免流程中断。

McN*_*ets 19

PostgreSQL 中 TRY-CATCH 错误处理的等价物是这样的代码块:

[ <<label>> ]
[ DECLARE
    declarations ]
BEGIN
    statements
EXCEPTION
    WHEN condition [ OR condition ... ] THEN
        handler_statements
    [ WHEN condition [ OR condition ... ] THEN
          handler_statements
      ... ]
END;
Run Code Online (Sandbox Code Playgroud)

查看 Postgres 文档中关于Trapping errors 的信息

如果您想在您的函数中使用它,请记住它只能在 PL/pgSQL 函数中使用。