我怎样才能回滚我的最后一个删除命令在MySQL中?

我不小心删除了一些巨大的不。 从表中的行

我怎样才能回滚?

我使用腻子执行查询…

如果你们中的任何一个能够安全地引导我离开,我将不胜感激。

如果你还没有做出备份,那么你已经非常困惑了。

如果您还没有提交事务,请尝试rollback 。 如果您已经提交了事务(通过commit或退出命令行客户端),则必须从上次备份中还原数据。

如果您使用交易,则“回滚”function才有效。 这样,您可以将查询分组在一起,如果其中只有一个查询失败,可以撤消所有查询

但是,如果您已经提交了事务(或者使用了常规的DELETE查询),那么获取数据的唯一方法就是从先前进行的备份中恢复数据。

接受的答案并不总是正确的。 如果在mysql上configuration二进制日志logging,则可以将数据库回滚到任何以前的点,但仍有快照和二进制日志。 http://dev.mysql.com/doc/refman/5.0/en/point-in-time-recovery.html是了解这个设施的一个很好的起点。;

在开始查询之前使用BEGIN TRANSACTION命令。 这样你就可以在任何时候ROLLBACK事物。

例如:

  1. 开始交易
  2. 从学生中select*
  3. 从学生删除Id = 2
  4. 从学生中select*
  5. 回滚
  6. 从学生中select*

回滚通常不会在这个删除function上工作,当然一个备份只能保存你。 如果没有备份,那么没有办法恢复它作为删除查询运行在腻子上,德比使用.sql文件是自动提交一旦你激发删除查询。

如果您想先回滚数据,您需要执行autocommit = 0,然后执行查询删除,插入或更新。 执行查询后,执行回滚….

我也从我的开发数据库中删除了一些值,但我有相同的副本在QA数据库,所以我做了一个生成脚本和select选项“数据types的脚本”,“数据只”,select我的表,然后我得到插入语句与相同的数据,然后我在我的开发数据库上运行脚本。