2010-05-15 52 views
7

的效果我只是跑一個命令如何回滾最後執行MySQL查詢

update sometable set col = '1'; 

錯誤不指定WHERE條件。 是否有可能恢復表的以前版本?

+4

考慮'--i-AM-A-dummy'選項時ü登錄到UR db..it禁止任何刪除/更新語句不'where'條款 – slier 2014-06-09 23:25:15

回答

9

除非你...

  1. 運行查詢之前啓動的事務,並...
  2. 尚未提交事務

...然後不,你運氣不好,除非你自己創建的數據庫以前版本的備份。

(如果您在手動輸入查詢時未使用transactions,那麼您可能希望將來可以防止您現在可能遇到的問題,這對於緩解已實現的5秒後的類型非常重要)

+0

我採取這是數據庫的備份與當前版本沒有太大差別。所以這次節省了。 – 2010-05-15 07:38:03

1

對於某些表類型,MySQL確實有transaction support,但是因爲您提出這個問題,我敢打賭你沒有使用它。

每個人都這樣做一次。這是當你做兩次,你必須擔心:)

2

考慮啓用sql_safe_updates在未來,如果你擔心再次做這種事情。

SET SESSION sql_safe_updates = 1