【转】Oracle 如何找回已经删除了的表记录
2014-01-08 17:39
309 查看
有的时候我们不小心把数据库表(emp)中重要的记录给删除了,怎么给找回来了,看下面这个例子你就会明白。
某一天,10点钟的时候,张三一不小心给数据库表emp的一条重要记录给删除了并且还提交了,此时也没有其他任何备份数据,
他十分惊恐,10:05分他的同事,也就是本人出现了在和他轻松的聊天中给出了如下解决方法,哈哈哈。。。
我:怎么了
张:我把数据emp表的某几条记录给删除了,我也不知道删除的是那几条。。。
我:不要急,大概是几点删除的
张:10点左右
我:恩,现在10:05分了,也就是5分钟前删除的,还不超过6分钟
张:怎么办啊,我怎么把那几条数据给找回来啊,下午客户那边还要等着做数据演示了
我:冷静点,让我想想。。。有了,如果我们能够找回6分钟前的没有删除时候的数据那问题就解决了
找回6分钟前的原始数据(注意6分钟一定要是操作距现在的有效时间时间区域段,如果大于5分钟不足6分钟,
这个中间有没有做任何操作那只能坚持就小原则写5,不然会报 ora-01466 : 无法读取数据-表定义已更改)
[sql] view plaincopy
select * from emp as of timestamp sysdate - 6/1440
我:现在你可以把原来的表哦删掉直接创建备份一个表就可以了
[sql] view plaincopy
create table emp as (select * from emp as of timestamp sysdate - 6/1440);
张:这到是一个好办法,但是我们公司有规定,表不能随表删除,不然我的绩效奖金就全部泡汤了。。。
张:能不能在补删除原表的基础上,把找回的记录插入到原表中了
我:让我,想想。。。有了。。。
我:我们可以做差,找到删除的记录=6分钟前的原始数据-现在表中的记录,再插入原来的表中,提交
[sql] view plaincopy
insert into emp
select * --6分钟前删除的记录
from(select * --6分钟前删除的记录
from emp as of timestamp sysdate - 6 / 1440 --6分钟前的原始数据
minus --减去
select * from emp --现在表中的记录)
张:耶。。。可以了,thanks。。。
From:http://blog.csdn.net/goodleiwei/article/details/7431063
某一天,10点钟的时候,张三一不小心给数据库表emp的一条重要记录给删除了并且还提交了,此时也没有其他任何备份数据,
他十分惊恐,10:05分他的同事,也就是本人出现了在和他轻松的聊天中给出了如下解决方法,哈哈哈。。。
我:怎么了
张:我把数据emp表的某几条记录给删除了,我也不知道删除的是那几条。。。
我:不要急,大概是几点删除的
张:10点左右
我:恩,现在10:05分了,也就是5分钟前删除的,还不超过6分钟
张:怎么办啊,我怎么把那几条数据给找回来啊,下午客户那边还要等着做数据演示了
我:冷静点,让我想想。。。有了,如果我们能够找回6分钟前的没有删除时候的数据那问题就解决了
找回6分钟前的原始数据(注意6分钟一定要是操作距现在的有效时间时间区域段,如果大于5分钟不足6分钟,
这个中间有没有做任何操作那只能坚持就小原则写5,不然会报 ora-01466 : 无法读取数据-表定义已更改)
[sql] view plaincopy
select * from emp as of timestamp sysdate - 6/1440
我:现在你可以把原来的表哦删掉直接创建备份一个表就可以了
[sql] view plaincopy
create table emp as (select * from emp as of timestamp sysdate - 6/1440);
张:这到是一个好办法,但是我们公司有规定,表不能随表删除,不然我的绩效奖金就全部泡汤了。。。
张:能不能在补删除原表的基础上,把找回的记录插入到原表中了
我:让我,想想。。。有了。。。
我:我们可以做差,找到删除的记录=6分钟前的原始数据-现在表中的记录,再插入原来的表中,提交
[sql] view plaincopy
insert into emp
select * --6分钟前删除的记录
from(select * --6分钟前删除的记录
from emp as of timestamp sysdate - 6 / 1440 --6分钟前的原始数据
minus --减去
select * from emp --现在表中的记录)
张:耶。。。可以了,thanks。。。
From:http://blog.csdn.net/goodleiwei/article/details/7431063
相关文章推荐
- 如何使用Oracle查询并删除重复记录的SQL语句
- oracle数据中记录被另一个用户锁住 (附加:操作实例)
- Oracle查询昨天的记录
- x3650安装win2008r2 &rhel6.3x64 &oracle10gr2等问题记录
- Oracle排除记录集
- Oracle几种查找和删除重复记录的方法总结
- Oracle中的记录(Record)的使用
- Oracle巧取指定记录以及巧用外关联查询
- Oracle 中 查询 从m 行到n行 的 记录
- 安装oracle记录
- oracle 查询当前记录的上一条记录或下一条记录
- 基于OCCI访问Oracle的记录
- oracle两个客户端路径记录
- oracle 查询锁记录
- oracle学习记录之八
- oracle学习记录之九
- 获取ORACLE符合记录的前5条
- oracle查询指定字段 重复记录大于一条的记录,并统计该记录出现的总次数
- ORACLE在存储过程中记录日志的处理包
- Oracle Expdp 表单记录导出