postgres 中 SET XACT_ABORT ON 的替代方法是啥
Posted
技术标签:
【中文标题】postgres 中 SET XACT_ABORT ON 的替代方法是啥【英文标题】:What is the alternative to SET XACT_ABORT ON in postgrespostgres 中 SET XACT_ABORT ON 的替代方法是什么 【发布时间】:2021-03-22 12:52:25 【问题描述】:在 SQL Server 中,我们在存储过程中使用SET XACT_ABORT ON
。那么,在 Postgres 中,SET XACT_ABORT ON
的替代语句是什么。
SET XACT_ABORT:
SET XACT_ABORT
为 ON 时,如果 Transact-SQL 语句引发运行时错误,则整个事务将终止并回滚。
当SET XACT_ABORT
为OFF 时,在某些情况下,只有引发错误的Transact-SQL 语句被回滚,事务继续处理。根据错误的严重程度,即使 SET XACT_ABORT 为 OFF,也可能回滚整个事务。 OFF 是 T-SQL 语句中的默认设置,而 ON 是触发器中的默认设置。
【问题讨论】:
它有什么作用? @a_horse_with_no_name 抱歉,现在我已经更新了问题。谢谢!! 【参考方案1】:Microsoft says:
指定当 Transact-SQL 语句引发运行时错误时 SQL Server 是否自动回滚当前事务。
这是 PostgreSQL 中默认且唯一的行为(除非您使用保存点),因此您无需执行任何操作。
【讨论】:
好吧,在 postgres 中我们不必这样做,因为默认情况下 postgres 的行为类似于您所指的 SET XACT_ABORT ON(MSSQL) 功能?以上是关于postgres 中 SET XACT_ABORT ON 的替代方法是啥的主要内容,如果未能解决你的问题,请参考以下文章