Oracle 数据转移问题

jsf_jsp 2009-08-18 05:03:44
现在有一个日志表,对数据每天备份一次,转移到备份表之后将其从日志表中删除,但是该日志表在这个过程中仍然有
新的记录进来,采用什么方法完成这项工作比较好呢
...全文
80 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangyt 2009-08-19
  • 打赏
  • 举报
回复
[Quote=引用楼主 jsf_jsp 的回复:]
现在有一个日志表,对数据每天备份一次,转移到备份表之后将其从日志表中删除,但是该日志表在这个过程中仍然有
新的记录进来,采用什么方法完成这项工作比较好呢
[/Quote]

使用物化视图可以解决你的问题
oracletoad 2009-08-19
  • 打赏
  • 举报
回复
[Quote=引用楼主 jsf_jsp 的回复:]
现在有一个日志表,对数据每天备份一次,转移到备份表之后将其从日志表中删除,但是该日志表在这个过程中仍然有
新的记录进来,采用什么方法完成这项工作比较好呢
[/Quote]

转移的时候,有个主键id标识吧,按照这个主键id来delete,不久可以了吗?
jdsnhan 2009-08-18
  • 打赏
  • 举报
回复
方法很多。比如日志表中有日期时间字段,每天按天为单位进行备份,删除。

或者,insert 全部,删除掉备份表里有的。

insert into 备份表 select * from 日志表;

delete from 日志表 where id not in (备份表) 或者用 not exists
majy 2009-08-18
  • 打赏
  • 举报
回复
启动一致性事务就不存在数据不一致问题,看下例:

begin
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; --有了这句话,后面任何语句看到的数据都是从事务开始那个点的数据
insert into temp select * from emp;
delete emp where empno = 9999;
commit;
end;
ojuju10 2009-08-18
  • 打赏
  • 举报
回复
删除日志表的时候,用个主键关联下

删除日志表中已经存在于备份表的记录

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧