2012-06-06 138 views
11

我正在嘗試在MySQL服務器上進行更新,並且意外忘記添加應該編輯一行的其他WHERE子句。撤銷mysql更新命令

由於我的錯誤,我現在編輯了3500多行。

我可能有備份,但自上次備份以來,我做了大量工作,我只是不想因1個錯誤查詢而浪費所有資源。

請告訴我有什麼我可以做的,以解決這個問題。

+4

我敢打賭,你希望你交易 –

+0

不幸的是,如果你沒有做備份,我不認爲你可以做任何事情。 – srchulo

+0

是否啓用二進制日誌? –

回答

5

如果您提交了交易,現在是時候清除備份了,對不起。但這就是備份的目的。我曾經做過一次這樣的事。

8

只是一個想法 - 你可以恢復你的備份到一個新的數據庫,然後做一個跨數據庫查詢更新該列基於它曾經的數據?

+1

我從來沒有這樣做過?有關如何做的建議? – Naveen

+1

恢復 - 我會讓我的DBA做到這一點(我是一名開發人員,而不是DBA)。對於跨數據庫查詢 - 我不是一個mySQL人員,所以我不知道細節。但在Oracle中,我們首先授予在schema1中適當的表上「選擇」到schema2的權限。然後我們在schemaName前面加上表格。所以選擇* from schema1.tablename。 – user158017

4

沒什麼。

儘管如此,您仍然可以很高興您擁有這種學習體驗,併爲您現在如何改變習慣以大大降低再次發生的機會而感到自豪。你現在可以成爲'大師',可以教導年輕的幼崽並引用實戰經驗。

+0

我很高興它在這個階段發生了,以後生病時要格外小心。雖然影響不是那麼嚴重,但它仍然影響着我。但是,這是一次很好的學習經歷。 – Naveen

+0

嗨@Naveen。你有沒有設法解決這個問題。忘記了哪裏條款和我的頭很熱。我的備份不是最近的。 –