sql - 是否可以撤消回滚?
问题描述
我在测试一些插入和更新的表中摆弄。
我总是以 a 开始我的命令,BEGIN;
当我看到结果时,我会在ROLLBACK;
之后运行 a。
我不小心按了两次 F5 并ROLLBACK;
突出显示,它回滚为空。
有没有办法撤销ROLLBACK;
?
编辑:事实证明,这并没有像我想象的那样发挥作用。我没有按两次 F5 导致一些双重回滚,只是碰巧在我与数据库交互的同时有一个删除正在运行,没有人通知我。不过,我暂时保留它以表明似乎没有办法撤消回滚。
解决方案
感谢@visch 的回答:
我不这么认为 tutorialspoint.com/postgresql/postgresql_transactions.htm
编辑:为了提供更多上下文并让每个人都开心,您无法撤消回滚,因为在以下情况下事务被有效地吹走:
- 数据库内发生错误
- 连接丢失
- 提交运行
- 回滚运行
因此,一旦满足这些条件中的任何一个,交易就会被擦除 - 不会存储交易记录,因为这就是重点
推荐阅读
- python - 如何在Python中查找特定文件是否存在于某处
- javascript - 如何使用 javascript 创建一个按钮,该按钮将调用该函数来编辑用户输入?
- database - 如何使用 vb6 读取 csv 或 excel 文件并将数据写入 DB 表
- angular-material - 响应即将到来,但请求 api 调用未在 angular9 的网络面板中触发
- python - 如何获取图像中的分割数
- python-3.x - ModuleNotFoundError:运行由 PyInstaller 编译的 Mac OS 应用程序时没有名为“cmath”的模块:PyTesseract 出现问题
- javascript - 需要帮助创建包含信息的缓冲区
- javascript - JS/NodeJS WebSockets:尝试通过 https:// 连接 ws:// 时出现“混合内容”错误
- javascript - 在脚本中使用替代文本
- scala - scalafx 和 TableView:如何更改 slectionModel 和 focusModel?