参考文章 Update误操作后如何恢复数据
今天进行update
更新生产环境数据库时,一不小 where
条件后面的语句没写,一下子就把整个某个字段的数据全部update
,心里拔凉拔凉的。
本该
update t1 SET name = 'xxx' WHERE id= '123';
一不小心写成了,手一抖就执行了。
update t1 SET name = 'xxx';
然后更新了 1300 多条。
后面参考了上面的文章进行了更新时间回退的操作,解决了这个问题。
update PW_INSTALL_MAIN t1 set t1.df_code = (select df_code from PW_INSTALL_MAIN P AS OF TIMESTAMP SYSDATE - 120/ 1440 where t1.rowid = rowid);
回退到 120 分钟前。
- SYSDATE :当前时间
- 1440 :24h*60m=1440m
因为该表记录每条都没有唯一的值,不过 oracle 内置了 rowid 所以用该条件解决了。