2015-09-06 59 views
0

我們的表中有一個已被惡意修改 /*根據已發表的請求編輯 在對特定列進行更新時,我不小心忽略了指定要更改哪一行並設置對錶中的每一行都有違規價值。
*/end編輯恢復特定表中的數據

但我們有一個非常新的備份,但不是最近的其他表不會丟失數據,如果我們做一個總的數據庫恢復。

我想知道過程是什麼(假設有一個)將給定表的內容從一個數據庫複製到另一個。

最大的問題是我不能放棄違規表並將其替換爲具有id索引的行到其他表中。如果我們只是從備份中的相同行中獲取值並將其帶過來(因爲行id不會更改),這不會成爲問題。

+0

您能否簡要解釋了什麼問題,在當前的表中的數據?這會影響理想的解決方案。 – rjdown

+0

@rjdown,添加了解釋 –

回答

1

目前還不清楚究竟出了什麼問題與您的數據。但我想也許只是一兩列已經搞砸了。正如你所說的,你只是想根據id列複製舊錶中的數據。

假設你已經導入了備份數據庫「OLDDB」和當前一個被命名爲「NEWDB」:

UPDATE newdb.yourtable newtable, olddb.yourtable oldtable 
SET newtable.somecolumn = oldtable.somecolumn 
WHERE newtable.id = oldtable.id 
+0

!這將完美的工作......謝謝! –

0

爲該特定表使用mysqldatadump,然後將其提供給其他數據庫。

您可以在將轉儲文件重新存入目標表之前進行編輯。

請參見:https://dba.stackexchange.com/questions/9306/how-do-you-mysqldump-specific-tables

+0

mysqldump創建插入語句。我需要更新語句,因爲惡意表中的行已經存在,他們只需要重置爲以前的內容。當你說「編輯轉儲文件」時 - 不包括將每個插入內容更改爲更新,考慮到數據量這將是不可能的任務)還有其他方法可以實現嗎? –

+0

你能寫一個腳本來替換更新的插入?當然就像sed – Tracysss