【问题标题】:PostgreSQL plpgsql try catch block equivalentPostgreSQL plpgsql try catch 块等效
【发布时间】:2018-08-17 18:12:13
【问题描述】:

我使用的是 PostgreSQL 9.6。

我在 sql server 中有一个 PROCEDURE。这利用了try catch 块。它看起来有点像下面的代码:

        BEGIN TRANSACTION
        BEGIN TRY
        --do stuff here
        COMMIT TRANSACTION
        END TRY
        BEGIN CATCH
        ROLLBACK TRANSACTION
        --do error stuff here
        END CATCH

在做一些研究后,似乎 postgres 没有使用try catch。有没有办法像 sql server 一样在 postgres 中处理这个问题?

【问题讨论】:

  • 在 PL/pgSQL 中是 BEGIN ... EXCEPTION ... END。但是你不能在函数中提交。
  • 所以所有函数都自动提交?
  • 否;每个函数都在单个事务中运行(当然,多个函数可以在同一个事务中运行,但您不能在函数内部提交或回滚)。 PostgreSQL v11 改变了这一点。
  • stack exchange database admins看到这个答案

标签: postgresql plpgsql


【解决方案1】:

【讨论】:

    猜你喜欢
    • 2011-01-23
    • 2011-04-15
    • 2016-03-28
    • 2012-11-26
    • 2016-05-21
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多