Quantcast
Channel: CSDN博客推荐文章
Viewing all articles
Browse latest Browse all 35570

序列

$
0
0

 序列的两参数:nextvalcurrval


Nextval  returns the next  avaiable sequence value.It returns a unique value every time it is referenced,even for different users.


Currval obtains the current sequence value.


打开第一个会话,创建个序列:


在调用currval的值前,必须先调用nextval的值。


SQL> create sequence myseq1  increment by 10 start with 120 maxvalue 9999 nocache nocycle;

Sequence created.


SQL> select myseq1.currval  from dual;

select myseq1.currval  from dual

       *

ERROR at line 1:

ORA-08002: sequence MYSEQ1.CURRVAL is not yet defined in this session



所以先调用nextval的值,第一个值是120


SQL> select myseq1.nextval from dual;

   NEXTVAL

----------

       120


打开第二个会话,调用nextval的值会继续增加为130


SQL> select myseq1.nextval from dual;

   NEXTVAL

----------

       130


再回到第一个会话中,调用currval的值,


SQL> select myseq1.currval from dual;

   CURRVAL

----------

       120


可以看到currval的值并不是130,还是第一个会话上次的值,


调用nextval的值,


SQL> select myseq1.nextval from dual;

   NEXTVAL

----------

       140


可以看到,nextval的值是在第二会话的基础上增加的。


所以nextval的值是每调用一次就增加一次;currval的值调用时,还是和自身会话的当前值一样。

作者:sunwei335 发表于2013-7-22 23:54:05 原文链接
阅读:126 评论:0 查看评论

Viewing all articles
Browse latest Browse all 35570

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>