update误操作,如何数据回滚(MaydayMayday)

问题描述

问题:在进行update 的时候,忘记加where条件,导致所有数据都被修改。如何进行恢复到sql 执行前的状态,话不多说操作如下。

笔者,环境是oracle环境,mysql 没有尝试过。

第一步:查询执行过的SQL语句

select r.first_load_time,r.* from v$sqlarea r where sql_text like '%执行的SQL语句%' order by r.first_load_time desc

‘%%’ 不写的话,就是查找所有执行记录


第二步:设置误操作表可数据回滚

alter table 误操作表名 enable row movement;

第三步:恢复到时间节点

flashback table 误操作表名 to timestamp to_timestamp('SQL误执行时间','yyyy-mm-dd hh24:mi:ss');

SQL误执行时间,选择上一条SQL语句时间(误操作SQL的上一条)

第四步:关闭表回滚

alter table 误操作表名 disable row movement;

第五步:收工,检查数据情况

刷新一下你的表吧,你会惊喜的发现,总算数据回来了。

请添加图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值