今天在生产数据库里改东西,成功的用update语句将所有的人员都改成了同一个姓名。瞬间吓破胆,然后开始找解决的办法, 竟然一百度就找到了。保存一下。
1、 -- 查询你执行update 语句之前的数据 精确到什么时间
select * from 表名 as of timestamp to_timestamp('2017-07-21 17:16:38', 'yyyy-mm-dd hh24:mi:ss');
2、 -- 开启可移动数据命令,执行完就可以回滚数据
alter table 表名 enable row movement;
3、 --正式回滚 update 语句前的数据
flashback table 表名 to timestamp TO_TIMESTAMP('2017-07-21 17:16:38', 'yyyy-mm-dd hh24:mi:ss');
只是针对ORACLE 处理。
数据虽然恢复了,但此次误操作还是让我心有余悸,update必须小心再小心。