【问题标题】:Undo more than one change in mysql [duplicate]撤消mysql中的多个更改[重复]
【发布时间】:2015-11-06 10:59:44
【问题描述】:

我们可以在 mysql 中撤消多个更改吗?我删除了一些行并选择 * 来查看表格。我看到了 ROLLBACK 但我猜它只会恢复上次查询的操作。我可以撤消删除这些行吗?

如果无法撤消多个更改,有没有办法查看上次编辑的表格并在查看之前撤消所做的更改?此外,是否已提交上次查询之前的更改(即使 AUTOCOMMIT 为 0)?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    该问题的解决方案是,请确认您的二进制日志已在您的服务器中激活,如果您的服务器上有二进制日志处于活动状态,您可以使用mysqlbinlog

    用它生成一个sql文件后

    mysqlbinlog binary_log_file > query_log.sql
    

    然后找到您丢失的行。如果没有,您必须保留下次备份您的数据库

    【讨论】:

      【解决方案2】:

      来自参考手册:http://dev.mysql.com/doc/refman/5.1/en/commit.html

      默认情况下,MySQL 在启用自动提交模式的情况下运行。这意味着 只要您执行更新(修改)表的语句, MySQL 将更新存储在磁盘上以使其永久化。

      这意味着在您删除记录(并显式或隐式提交)后,您无法回滚它们。

      回滚是对更改表中数据的事物的一种撤消,但是为了使用您必须:

      • 关闭自动提交并明确使用提交语句。
      • transactions 中进行更改
      • 有些语句会导致隐式提交:link

      【讨论】:

        猜你喜欢
        • 2015-01-30
        • 2010-10-30
        • 2021-02-17
        • 2012-04-21
        • 2021-05-20
        • 1970-01-01
        • 2016-10-09
        • 2016-01-11
        • 1970-01-01
        相关资源
        最近更新 更多