首页 > 解决方案 > 是否可以撤消回滚?

问题描述

我在测试一些插入和更新的表中摆弄。

我总是以 a 开始我的命令,BEGIN;当我看到结果时,我会在ROLLBACK;之后运行 a。

我不小心按了两次 F5 并ROLLBACK;突出显示,它回滚为空。

有没有办法撤销ROLLBACK;

编辑:事实证明,这并没有像我想象的那样发挥作用。我没有按两次 F5 导致一些双重回滚,只是碰巧在我与数据库交互的同时有一个删除正在运行,没有人通知我。不过,我暂时保留它以表明似乎没有办法撤消回滚。

标签: sqlpostgresql

解决方案


感谢@visch 的回答:

我不这么认为 tutorialspoint.com/postgresql/postgresql_transactions.htm

编辑:为了提供更多上下文并让每个人都开心,您无法撤消回滚,因为在以下情况下事务被有效地吹走:

  1. 数据库内发生错误
  2. 连接丢失
  3. 提交运行
  4. 回滚运行

因此,一旦满足这些条件中的任何一个,交易就会被擦除 - 不会存储交易记录,因为这就是重点


推荐阅读