2010-04-27 48 views
0

我錯誤地發起了一個更新查詢,並且數據字段中表中的所有記錄都得到了更新,並且在auto_commit打開時也無法回滾。當auto_commit打開時回滾MySQL數據庫

是否有任何其他方式來檢索記錄?

請幫忙,它急。提前致謝。

+0

這就是爲什麼使用非自動提交事務很方便的原因,特別是在手動輸入查詢時。 ;) – Amber 2010-04-27 10:37:43

回答

0

您可以獲取記錄,但它們處於上次更新的狀態。回滾不起作用,導致交易已關閉。 (auto_commit on)。

1

我不認爲你可以rollback查詢/交易一旦它被COMMITED (並且,在這裏,它有):舊的數據已被替換爲新的,和已經消失了。

可能的解決方案:

  • 如果可能的話,這取決於你做了更新,有可能是恢復該更新的方法嗎?
  • 否則,我希望你有頻繁的備份,並且知道如何將它們恢復到(如果需要的話,將其恢復到臨時數據庫,以提取所需信息並將其重新導入生產數據庫)「 ...
+0

是的,我有備份,但最近的數據將丟失::( – devang 2010-04-27 10:35:53

+0

如果您將它恢復到生產數據庫,是;;但解決方案可能是將該備份恢復到另一個數據庫;然後,僅提取數據您需要從臨時恢復的數據庫,手動導入到您的生產數據庫*(我沒有說這很容易...)* – 2010-04-27 10:37:21

+0

雅我知道會嘗試搞清楚,如果你的解決方案工作..感謝 – devang 2010-04-27 10:59:32

0

如果你有啓用binary logging,你可以從備份中恢復數據庫,然後提取任何變化是BACKUPTIME並從二進制日誌和你的壞查詢他們之間重新應用到數據庫。