Oracle事务提交后如何进行回滚操作说明

今天在处理售后的时候,需要批量操作数据,但由于看掉了客户提出的一个条件,还提交事务了,我当时就慌了....赶紧去网上查是否有相关回滚的方法呀,还真有,流程如下:

Oracle自带数据闪回机制。

SELECT * FROM tableName AS OF TIMESTAMP TO_TIMESTAMP('20180822 11:00:00','YYYYMMDD HH24:MI:SS');
这里'20180822 11:00:00'就是你想恢复数据到哪个时间状态 tab是数据库的表名 这样查询到的数据就是执行更新操作之前的数据 

create table tableName_back  as SELECT * FROM tab AS OF TIMESTAMP TO_TIMESTAMP('20180822 11:00:00','YYYYMMDD HH24:MI:SS');
这样就把这个时间段的数据放到了 tab_bak(备份表)表中了。

之后就简单了,备份表都有了,利用备份表还原就行了,不过我提醒一下最好在还原之前给备份表加上主键,不然利用SQL还原的时候慢得你伤心。

之后还原即可。  

示例:

update tableName tn 

set tn.name =

(select tnb.name from tableName_back  tnb where tnb.id = tn.id); 

原文地址:https://blog.csdn.net/u014388408/article/details/50778979

未授权,侵删。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值