就是我建立了一个序列,
然后insert的时候使用这个序列, 可是insert失败的时候, 这个序列还是会自己增加。比如我让序列从1开始, 然后我insert失败了3次, 第四次成功的时候, 序列号直接就是4了。
123被跳过去了。这个问题怎么解决??
然后insert的时候使用这个序列, 可是insert失败的时候, 这个序列还是会自己增加。比如我让序列从1开始, 然后我insert失败了3次, 第四次成功的时候, 序列号直接就是4了。
123被跳过去了。这个问题怎么解决??
解决方案 »
- 新人小问题求指教
- Oracle怎么让系统自动删除一个表一个时间段的数据
- 【pro*c/c++预编译通不过-寸步难行啊】谁能帮我预编译通过呀?
- oracle Date类型Insert 一个类似于0000/00/00的非法日期
- Oracle客户端远程访问的问题
- 数据库导入问题
- 请问如何在.net里面调用oracle的函数?是不是跟调用sp一样。我指的函数就是类似用function开头的。而且有返回值的函数怎么调用返回,谢谢
- 大家说说你们的Oracle应用多大规模,用什么样的硬件配置
- 怎么执行sql语句
- 请问在VB.net中如何得到oracle过程执行的返回值?谢谢帮助!
- 将mssql移植到oracle下
- 请教一个分组排序的sql写法
如果你设置了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楼所说的问题