记录-数据库历史数据查询、恢复

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

 

posted @ 2022-02-18 17:57  qlnx  阅读(1102)  评论(1编辑  收藏  举报