参考博客: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无法执行,不大敢用