oracle更新数据,提交(commit)后,如何“回滚“

注:因为在更新数据时,不小心把表中所有数据更新了,经过多次尝试,可以使用以下步骤恢复数据

1、查看快照数据

SELECT * FROM tab_name AS OF TIMESTAMP TO_TIMESTAMP(‘20201119 16:00:00’,‘YYYYMMDD HH24:MI:SS’);

这里’20201119 16:00:00’就是想恢复数据到哪个时间状态,
tab_name 是数据库的表名 这样查询到的数据就是执行更新操作之前的数据

2、根据快照的数据创建备份表

create table tab_name_bak as
SELECT * FROM tab_name AS OF TIMESTAMP TO_TIMESTAMP(‘20201119 16:00:00’,‘YYYYMMDD HH24:MI:SS’);

这样就把这个时间段的数据放到了 tab_name_bak表中了。

3、删除原表的数据

truncate table tab_name;

4、将备份表的数据复制到原表中

INSERT INTO tab_name SELECT * FROM tab_name_bak;

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值