昨日在调试程序时,发现oracle中利用sequence生成的id有断号问题,经查证,发现是因为sequence有cache的原因,在创建序列时,缺省时20个,即一次生成20个序列号,如果此时第二个数据库连接连接后,并请求序列的话,将从第21个开始生成21-40的序号。如果这两个连接中的某一个连接断开,则不用的序列将被废弃不用了。所以出现断号问题。
解决方案是:加上关键字nocache,即不使用cache模式。
昨日在调试程序时,发现oracle中利用sequence生成的id有断号问题,经查证,发现是因为sequence有cache的原因,在创建序列时,缺省时20个,即一次生成20个序列号,如果此时第二个数据库连接连接后,并请求序列的话,将从第21个开始生成21-40的序号。如果这两个连接中的某一个连接断开,则不用的序列将被废弃不用了。所以出现断号问题。
解决方案是:加上关键字nocache,即不使用cache模式。