记一次 Oracle Update 误操作

参考文章 Update误操作后如何恢复数据

今天进行update更新生产环境数据库时,一不小 where 条件后面的语句没写,一下子就把整个某个字段的数据全部update ,心里拔凉拔凉的。

本该 
update t1 SET name = 'xxx' WHERE id= '123';
一不小心写成了,手一抖就执行了。
update t1 SET name = 'xxx';

然后更新了 1300 多条。

后面参考了上面的文章进行了更新时间回退的操作,解决了这个问题。

  update PW_INSTALL_MAIN t1 set t1.df_code = (select df_code from PW_INSTALL_MAIN P AS OF TIMESTAMP SYSDATE - 120/ 1440 where t1.rowid = rowid); 

回退到 120 分钟前。

  • SYSDATE :当前时间
  • 1440 :24h*60m=1440m
    因为该表记录每条都没有唯一的值,不过 oracle 内置了 rowid 所以用该条件解决了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值