update commit后找回update前数据

本文介绍如何使用SQL中的临时表功能,通过创建和插入数据来追踪过去某个时间点的数据状态,特别适用于在十分钟内多次更新同一记录场景下,获取历史记录。同时,文章还提及了闪回特性在数据库恢复中的应用。
 
t_sys_client 

1.首先创建临时表
create table tmp as  select * from t_sys_client  where 1=0;

2. 将查询的记录插入到 临时表
insert into tmp select * from t_sys_client  as of timestamp sysdate-10/1440;    --10分钟之前的数据

 select * from t2 as of timestamp sysdate-1/1440         -->  1 代表 1分钟前,改成5 代表 5分钟前
这时候临时就是你以前的表了,可以用 where 。
 
但是,如果十分钟之内,我对t_sys_client 的那一条记录update了两次,这时tmp表中的,就只有最近一次update的历史记录了。要知道这个历史记录上一次的记录,

那就在建立一张临时表

insert into tmp1 select * from t_sys_client  as of timestamp sysdate-10/1440   

这就需要那大概知道 第二个 update 时间了  

指定精准时间
insert into tmp1  select * from t2 as of timestamp to_timestamp('2011-07-12 10:30:00', 'YYYY-MM-DD HH24:MI:SS');


 
闪回是10g新特性,那么闪回可以关掉吗?
闪回分 表闪回和数据库闪回,

数据库闪回默认是关闭的,需要手动开启

表闪回是通过 undo 闪回的,刚才的操作是通过 undo 恢复的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值