就是我建立了一个序列,
然后insert的时候使用这个序列, 可是insert失败的时候, 这个序列还是会自己增加。比如我让序列从1开始, 然后我insert失败了3次, 第四次成功的时候, 序列号直接就是4了。
123被跳过去了。这个问题怎么解决??
然后insert的时候使用这个序列, 可是insert失败的时候, 这个序列还是会自己增加。比如我让序列从1开始, 然后我insert失败了3次, 第四次成功的时候, 序列号直接就是4了。
123被跳过去了。这个问题怎么解决??
如果你设置了sequence的cache的,那可能中断的数据还要多
取序列的nextval不和你的sql是同一个事务 没办法控制如果你想让某个字段不间断的递增 可以用max(本字段)+1来进行插入啊
你原来写的insert语句是 insert into a (id,name,value)select 序列.nextval,'name','value' from dual
现在可以改成 insert into a (id,name,value)select max(id),'name','value' from dual
不过需要注意的是 这样的话 一次只能插入一条记录 否则 就会导致id重复 也就是8楼所说的问题