欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

oracle 中的sequence解决办法

更新时间: 2014-01-05 02:14:29 责任编辑: Author_N1

 

Oracle 中的sequence
我在C#代码里使用多个线程向一个表中插入数据,插入的ID用sequence自动生成,有没有什么办法可以让一个线程用完这个序列后再转让给另一个线程使用?主要针对sequence,不在C#代码里用锁!

就是说在oracle中可不可以在有人使用这个序列的时候给一个标记不让别人使用?
--参考方法--
不需要,sequence在多线程调用时依然可以保证产生的值唯一。

如果是想让生成的值连续,才需要用程序自行实现。
--参考方法--
sequence 唯一
--参考方法--
新手,同来学习。
--参考方法--
oracle的sequence总是在数据库中生成唯一值,即使当多个用户并发地引用同一sequence时也没有可察觉的等待或锁定。当多个用户使用 NEXTVAL 来增长序列时,每个用户生成一个其他用户不可见的唯一值。当多个用户并发地增加同一序列时,每个用户看到的值是有差异的。例如,一个用户可能从一个序列生成一组值,如 1,3,5和 6,而另一个用户并发地从同一序列生成值2,4,7和8。希望对你有帮助...
--参考方法--
非要这样的话可以做两个sequence,把他们的范围错开
--参考方法--
引用:
Quote: 引用:

不需要,sequence在多线程调用时依然可以保证产生的值唯一。

如果是想让生成的值连续,才需要用程序自行实现。


引用:
oracle的sequence总是在数据库中生成唯一值,即使当多个用户并发地引用:
非要这样的话可以做两个sequence,把他们的范围错开

当然也不能保证

2.自己创建序列
--参考方法--
引用:
Quote: 引用:

Quote: 引用:

不需要,sequence在多线程调用时依然可以保证产生的值唯一。

如果是想让生成的值连续,才需要用程序自行实现。


引用:
oracle的sequence总是在数据库中生成唯一值,即使当多个用户并发地引用:
非要这样的话可以做两个sequence,把他们的范围错开

当然也不能保证

2.自己创建序列

建个triger自己来控制自增
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:14:29
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/7398/
本文WWW.DOC100.NET DOC100.NET版权所有。