我创建了一个序列,比如seq_no,我初始值设置的是1,增量是1,缓冲是2。
我希望的是这个序列能一直从1往上增加,1、2、3、4等等。但是我发现有的时候会出现中间的序列号断开的情况,比如1完了之后,下次就到3了,2没有。我在产生1之后,重新启动过数据库,不知道是否和这个有关呢?虽然少一两个序列值影响不大,但是还是希望有什么办法能够让序列值自动连续下来,不丢失最好。
请问大家有什么好的办法吗?谢谢了先~
我希望的是这个序列能一直从1往上增加,1、2、3、4等等。但是我发现有的时候会出现中间的序列号断开的情况,比如1完了之后,下次就到3了,2没有。我在产生1之后,重新启动过数据库,不知道是否和这个有关呢?虽然少一两个序列值影响不大,但是还是希望有什么办法能够让序列值自动连续下来,不丢失最好。
请问大家有什么好的办法吗?谢谢了先~
另外,回滚也会导致序列号不连续。这两种序列机制本身无法解决,呵呵。
cache里面的取完后,oracle自动再取一组到cache。
使用cache或许会跳号, 比如数据库突然不正常down掉(shutdown abort),cache中的sequence就会丢失. 所以可以在create sequence的时候用nocache防止这种情况。
to java3344520:我刚接触数据库不久,懂的只是还不多,还不了解什么是触发器啊?⊙﹏⊙b汗,我得赶快学学其他的知识了。呵呵