错误操作一堆数据,遇到这个问题先别慌,办法总会有的,可能我这个办法比较基础,但也是办法之一哈。
第一步是查找指定时间里的数据,例如我是在2020年6月1号15:30左右误改数据,那么这条语句就是可以根据时间查找你误改前的表里的内容,我把时间设定为误改前的5分钟。
这样就可以查看到你这张表是否在2020年6月1号15:25的数据,也就是被删之前的数据
select * from 表名 as of timestamp to_timestamp('2020-06-01 15:25:00','YYYY-MM-DD hh24:mi:ss');
当然也可以指定查询距离现在多久之前的数据,以及加上条件 ,这是查询距离现在70分钟之前的数据
select * from wms_f_receive as of timestamp (systimestamp - interval '70' minute) where plan_no='MXXC20220817001';
第二步是开启这个表回归数据,这样才可以执行闪回,否则你在执行闪回的时候会报错的。
alter table 表名 enable row movement;
第三步是执行闪回语句,就是让表的数据恢复到2020年6月1日15:25的状态。这个过程可能相对有点久,我误改了8万多条数据,用时789秒,相当于13分钟左右,所以如果遇到执行这条语句结果卡着不动了,不用惊慌,耐心等待数据恢复。
flashback table 表名 to timestamp TO_TIMESTAMP('2020-06-01 15:25:00','YYYY-MM-DD hh24:mi:ss');
第四步是关闭表回归数据的操作,对应第二步,凡是有开启,就得要关闭。
alter table 表名 disable row movement;
行了,数据恢复了,花了我十几分钟时间。。。
以上步骤,最好是在你发现操作失误后的两三个小时内,否则我怕时间久了数据会被回收走!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义