天天看點

Oracle使用updateSQL語句忘記加條件,誤改了其他資料的復原方法

Oracle使用updateSQL語句忘記加條件,誤改了其他資料的復原方法

執行下面sql時,忘加條件:

select * from er_bxzb where djbh = '264X202108030227'

select * from er_bxzb where djbh = '264X202107060442';

update er_bxzb set spzt = '1';
           

想要修改的單據

Oracle使用updateSQL語句忘記加條件,誤改了其他資料的復原方法

這是其他單據的審批狀态

Oracle使用updateSQL語句忘記加條件,誤改了其他資料的復原方法

誤改後不管是儲存還是暫存,所有審批狀态都變成了稽核通過-。-。

解決辦法就是執行以下三條sql:

(1)第一條SQL語句

--作用就是找到剛剛誤操作執行的時間節點,這個時間便是復原的時間
select r.FIRST_LOAD_TIME,r.* from v$sqlarea r order by r.FIRST_LOAD_TIME desc ;
           

(2)第二條SQL語句

--作用就是開啟表的行遷移
alter table m_met_rules enable row movement;
           

(3)第三條SQL語句

--作用就是復原表資料到目标時間節點
flashback table test to timestamp to_timestamp('20211129 14:52:35','YYYYMMDD HH24:MI:SS');
           

上面語句的table和時間要根據自己的情況進行修改

執行完之後,就會回到這個誤操作之前啦,然後在執行正确的語句,便可以完成,對資料庫操作一定要仔細仔細再仔細!

正确SQL語句

正确修改後

Oracle使用updateSQL語句忘記加條件,誤改了其他資料的復原方法

原文連結:https://blog.csdn.net/hl961403370/article/details/121691004