假設我有一個表與下面的模式:表恢復問題
TABLEID
字段1
場2
.....
我有我的數據庫的兩個副本(備份和製作)。在生產實例,查詢卻意外地運行其做了以下內容:
Update table set field2 = null where field1 = 'x';
我試圖撤消基於存儲在備份實例(哪裏不好update語句不運行)的數據這個查詢。
我需要在備份數據庫上運行哪些SQL語句來檢索fieldId和table2的值?我如何將其轉換爲適當的更新報表來修復生產?可能會有很多行受到查詢的影響。
我想,我可以用下面的查詢選擇備份擦除值:
Select tableId, field2 where field1 = 'x';
不過,我在一個關於如何將其轉換成一個簡單的更新語句損失。任何洞察力(或更好的想法)將不勝感激。
2 followups:在TABLEID是唯一的主整數鍵和兩個數據庫位於不同的計算機上,那麼您是否建議將備份中的錶轉儲到生產中的表上? – Visitor 2010-10-08 00:05:24
是,在生產數據庫中創建備份表的臨時副本。實際上,一個更好的選擇是在備份中製作破損的生產表的臨時副本,並在那裏工作。一旦良好,然後將該數據複製回生產。 – thursdaysgeek 2010-10-11 20:21:17