我看到另一个数据库系统提供暂停transaction .当前事务保持完好无损,但在您的代码被允许与数据库一起使用以立即对行进行永久更改时被搁置。然后您可以恢复事务,使用相同的锁和其他事务保护从中断的地方继续,就好像您从未中断过一样。
例如,假设客户在交易中下订单。在那次交易中,客户注意到他们的电话号码需要更新,因此我们更改了该数据。接下来,客户决定取消尚未完成的订单。回滚订单会带来意想不到的后果,即取消电话号码更改。因此,如果我们可以:
- 暂停订单交易。
- 更新电话号码,提交给数据库。
- 恢复订单的交易。
最佳答案
如果一个事务不能继续,它必须回滚。
如果你的交易有一个你不知道如何进行的点,那么你的交易逻辑有缺陷,你需要重新组织它 - 要么拆分成多个交易(或子交易,又名保存点),或者把不属于事务逻辑的部分去掉。
Is there some way to suspend a transaction in Postgres?
不,没有这样的事情。并且数据完整性原则对于时间是无条件的。
关于postgresql - 在 Postgres 中暂停事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44480900/