现在有一个日志表,对数据每天备份一次,转移到备份表之后将其从日志表中删除,但是该日志表在这个过程中仍然有
新的记录进来,采用什么方法完成这项工作比较好呢

解决方案 »

  1.   

    启动一致性事务就不存在数据不一致问题,看下例:begin
        SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;   --有了这句话,后面任何语句看到的数据都是从事务开始那个点的数据
        insert into temp select * from emp;
        delete emp where empno = 9999;
        commit;
    end;
      

  2.   

    方法很多。比如日志表中有日期时间字段,每天按天为单位进行备份,删除。或者,insert 全部,删除掉备份表里有的。insert into 备份表 select * from 日志表;delete from 日志表 where id not in (备份表)  或者用 not exists
      

  3.   


    转移的时候,有个主键id标识吧,按照这个主键id来delete,不久可以了吗?