天天看点

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