如何回滚上次执行的mysql查询的效果

时间:2010-05-15 07:16:55

标签: mysql rollback

我刚刚发了一个命令

update sometable set col = '1';

错误而未指定where条件。 是否有可能恢复该表的先前版本?

3 个答案:

答案 0 :(得分:11)

除非你......

  1. 在运行查询之前启动了一个事务,然后......
  2. 尚未提交交易
  3. ...然后不,你运气不好,除非您自己做过以前版本数据库的任何备份。

    (如果您在手动输入查询时不使用transactions,您可能希望将来能够防止您现在可能遇到的问题。它们对于减轻已实现的时间非常宝贵 - 5秒 - 有点错误。)

答案 1 :(得分:2)

如果你担心再次做这种事情,请考虑在将来启用sql_safe_updates

SET SESSION sql_safe_updates = 1

答案 2 :(得分:1)

没有。对于某些表类型,MySQL确实有transaction support,但因为你问这个问题,我敢打赌你没有使用它。

每个人都这样做过一次。当你做两次时,你必须担心:)