繁体   English   中英

在MySQL中提交后有没有办法回滚?

[英]Is there any way to rollback after commit in MySQL?

我犯了一个大错误,我在MySQL中没有'where'子句更新了一个表:'(

它是自动提交的。

有没有办法从它回滚?

不,没有任何查询可以“撤消”已提交的数据修改查询。

如果你有数据库的备份,你可以恢复备份并使用DBA工具(在MySQL的情况下,它是mysqlbinlog )从备份回到数据库,从日志中“重放”所有数据修改查询,但跳过问题查询。

如果自备份以来没有备份和所有日志,则无法恢复数据。

查找事务日志。 我将更新更多信息,但日志可能只会在有限的时间内保持,所以时间是至关重要的!

请参阅: http//dev.mysql.com/doc/refman/5.0/en/point-in-time-recovery.html

如果您启用了mysql binlog并且它是基于ROW的格式,那么您可以在更新之前和之后获取每一行的值。 使用它可以恢复表的状态。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM