【问题标题】:How to rollback my delete data in Postgres after delete operation?删除操作后如何在 Postgres 中回滚我的删除数据?
【发布时间】:2019-08-04 23:21:45
【问题描述】:

我什么都没做。我只是运行这个命令DELETE FROM feed_republic。但我想再次获取我的数据。我该怎么办?

当我运行rollback 时,我收到以下消息。请帮忙!

WARNING:  there is no transaction in progress

与这个问题Can I rollback a transaction I've already committed? (data loss) 不同,我没有使用任何提交或任何其他命令。

【问题讨论】:

  • 不能回滚已经提交的事务。
  • 我没有使用commit命令。那么,我的数据库是不是提交了呢?
  • 恐怕没有直接的方法可以恢复数据。我希望你没有在生产中这样做。我相信你是 Postgres 的新手。它不像 Oracle,默认情况下 dmls 在作为单个语句运行时可以回滚。在 Postgres 中,除非您在事务中运行语句,否则语句会自动提交,以 BEGIN; 开头
  • 已提交。您在事务范围之外执行了操作,因此它会自动提交。

标签: sql postgresql transactions commit rollback


【解决方案1】:

PostgreSQL 以 autocommit 模式运行,因此每个语句都在其自己的事务中运行,除非您显式使用 BEGINSTART TRANSACTION 启动事务。

恢复数据的唯一方法是从备份中恢复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    • 1970-01-01
    • 1970-01-01
    • 2020-11-21
    • 1970-01-01
    • 2016-10-18
    • 1970-01-01
    相关资源
    最近更新 更多