參考博客:https://blog.csdn.net/yelllowcong/article/details/78459484
一、起因
想着在測試庫執行update語句,不小心在正式庫執行了,而且where條件寫的有問題,把想要更新之外的數據也更新了。
二、首先查詢某張表的歷史數據(根據時間點查詢)
SELECT
*
FROM
table_name AS OF timestamp to_timestamp( '2022-02-18 14:40:00', 'yyyy-mm-dd hh24:mi:ss' )
三、導出查詢的數據(表數據可能很多,自己加上where條件,查出改過的數據就好)
全部下一步就好了,然后開始,這就導出了被修改之前的數據。
四、恢復數據
我的做法是先復制一個相同結構的空表
1.右鍵表
2.導入剛剛導出的數據
選擇文件,勾選,然后下一步
下面這個不用改動
下一步,然后開始,等導入完就好了。
3.導入完成后,寫sql把修改的數據再修改回去
Oracle數據庫兩表關聯更新
UPDATE T1 SET T1.FMONEY = (select T2.FMONEY from t2 where T2.FNAME = T1.FNAME) WHERE EXISTS(SELECT 1 FROM T2 WHERE T2.FNAME = T1.FNAME);
參考博客:https://www.cnblogs.com/gudaozi/p/8618322.html
ok了。
五、其他博客方法
https://blog.csdn.net/weixin_35231615/article/details/116370919
如下截圖:
不知道數據恢復能不能加where條件,不恢復整張表行不行,也不知道快不快,會不會卡住其他的sql無法執行,不大敢用