oracle序列用nextval取值的问题

oracle中序列用nextval取值事为什么在程序中取出来值的与我直接在plsql中用nextval取出来的值不一样?而且我在plsql中取出来的值比表中已有的值小很多... oracle中序列用nextval取值事为什么在程序中取出来值的与我直接在plsql中用nextval取出来的值不一样? 而且我在plsql中取出来的值比表中已有的值小很多,表中的值一直是程序中用nextval取出来的,而且远远没有达到序列最大值。 有什么情况会导致sequence.nextval取值不同步?? 灰常感谢!!! 展开
 我来答
HttpChu
推荐于2017-09-01 · TA获得超过409个赞
知道小有建树答主
回答量:375
采纳率:100%
帮助的人:356万
展开全部
不知你注意了没有,每一个sequence.nextval的值是不一样的,而且同一sequence每次取值是不一样的。
当sequence的cache为0时,每次sequence.nextval得到的值是当前sequence的值加1。
但cache不为0时,比如为20,他就意味着每次在缓存中去20次再写入数据库去,这样的的用sequence.nextval得到的值就比较难确定,但能保证每次去的值不一样,是递增的。
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
与人知识
2017-06-05 · TA获得超过746个赞
知道小有建树答主
回答量:150
采纳率:100%
帮助的人:31.9万
展开全部
很简单,每次select seq.nextval 值都会增加1。所以你在plsql中使用 nextval 查询值的时候,它就返回的是加1后的值了。不信可以在 plsql中多用nextval取值,每一次都不一样,都是递增1。如果获取当前值是 currval。nextval每次查询都会增1。这是oralce的特点。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dl_会飞的青蛙
2011-11-22 · TA获得超过2456个赞
知道大有可为答主
回答量:3294
采纳率:0%
帮助的人:3383万
展开全部
程序里有循环去值得情况吗? 把代码贴一下吧!~ 这样很难看出问题来!~
一般都是没有你说的这个问题的!~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式