2012-10-14 37 views
5

在終端(在ubuntu lucid中)使用sql編輯PostgreSQL數據庫中的某些記錄時,我做了一個錯誤的更新。如何在PostgreSQL中回滾更新

相反的 -

update mytable set start_time='13:06:00' where id=123; 

我輸入 -

update mytable set start_time='13:06:00'; 

因此,所有記錄現在具有相同START_TIME值。

有沒有辦法來取消這個改變?表中有500多條記錄,我不知道每條記錄的start_time值是多少

它是否永遠丟失?

+3

未來:您不應該啓用自動提交功能。 –

+0

經驗教訓!在更新之前總是進行備份,只要確保!如果您啓用了時間點恢復(PITR),這可能是可能的。 – jerjer

回答

6

我假設這是一個已經提交的事務?如果是這樣,那就是「提交」的意思,你不能回去。

如果幸運的話,某些數據可能會恢復。立即停止數據庫。

Here's an answer I wrote on the same topic earlier。我希望這有幫助。

這也可能是:Recoved deleted rows in postgresql

除非數據是絕對重要的,否則只需從備份中恢復,它會更容易,更輕鬆。如果你沒有備份,那麼考慮你自己的問題。

+0

謝謝..我停止了postgres服務。有什麼方法可以現在恢復數據? – damon

+1

@damon獲取整個數據庫的文件系統級副本並將其放置在安全的地方。 –