今天在用Oracle的时候发现一个问题,在批量向数据库写入记录的时候,出现有一部份记录不见了,具体是这样,当时我向数据库里写了490几条记录,后来去数据库里看,结果只有300多一点,有一百多条不见了,但是我数据表上有一自增字段,自增的Id号是加起走了的,程序里也把自增的Id号读取出来了,可是进数据库里查的时候根本就没有Id为那个的记录。但又不是每次都出现这种情况,只是偶尔出现一次,就是不明白这到底是为什么,有哪些情况可能会导致出现这样的情况??

解决方案 »

  1.   

    很多种可能性,不知道你的程序是怎么提交的?
    每条提交还是一起提交,或者是一部分一部分提交。
    我的感觉是你的程序中出现一些异常,这些以上影响你这条记录的插入,但是不会使应用程序中断。
    所以,提交以后有些纪录没有插入数据库。
    现在解释为什么sequence会增加,因为你在seq.nextval的时候不论你是否提交,seq都会增加。
    所以seq加上去了,但是数据并没有成功插入到你的库中。