添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

您可能会遇到如下所示的错误消息。

ERROR: current transaction is aborted, commands ignored until end of transaction block

在 Redrock Postgres 中,通常情况下,如果SQL语句在执行过程中出现错误,该语句中的所有影响都将被回滚。此操作是一个语句级回滚。

当我们执行 ALTER CONSTRAINT constraint_name INITIALLY IMMEDIATE 命令,要将延迟检查的约束设置为 IMMEDIATE 时,会立即对该约束进行检查,需要追溯整个事务执行过的操作是否满足约束检查。此时如果检查出现错误,该SQL语句产生的错误是不能被恢复的,会让事务进入中止的状态。

如果我们处于中止的事务中,Postgres 会拒绝除 ROLLBACK / ABORT 之外的所有命令。

这通常是由于应用程序未正确处理事务中的错误,并保持事务打开而不是回滚而导致的。这可能还有其他意外情况,因此强烈建议修复应用程序代码以正确响应事务中的异常。