【发布时间】:2015-11-06 10:59:44
【问题描述】:
我们可以在 mysql 中撤消多个更改吗?我删除了一些行并选择 * 来查看表格。我看到了 ROLLBACK 但我猜它只会恢复上次查询的操作。我可以撤消删除这些行吗?
如果无法撤消多个更改,有没有办法查看上次编辑的表格并在查看之前撤消所做的更改?此外,是否已提交上次查询之前的更改(即使 AUTOCOMMIT 为 0)?
【问题讨论】:
标签: mysql
我们可以在 mysql 中撤消多个更改吗?我删除了一些行并选择 * 来查看表格。我看到了 ROLLBACK 但我猜它只会恢复上次查询的操作。我可以撤消删除这些行吗?
如果无法撤消多个更改,有没有办法查看上次编辑的表格并在查看之前撤消所做的更改?此外,是否已提交上次查询之前的更改(即使 AUTOCOMMIT 为 0)?
【问题讨论】:
标签: mysql
该问题的解决方案是,请确认您的二进制日志已在您的服务器中激活,如果您的服务器上有二进制日志处于活动状态,您可以使用mysqlbinlog
用它生成一个sql文件后
mysqlbinlog binary_log_file > query_log.sql
然后找到您丢失的行。如果没有,您必须保留下次备份您的数据库
【讨论】:
来自参考手册:http://dev.mysql.com/doc/refman/5.1/en/commit.html
默认情况下,MySQL 在启用自动提交模式的情况下运行。这意味着 只要您执行更新(修改)表的语句, MySQL 将更新存储在磁盘上以使其永久化。
这意味着在您删除记录(并显式或隐式提交)后,您无法回滚它们。
回滚是对更改表中数据的事物的一种撤消,但是为了使用您必须:
【讨论】: