oracle序列参数:nextval和currval

oracle序列参数:nextval和currval

 

 序列的两参数:nextval和currval。

 

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的值。

 

?
1
2
3
4
5
6
7
8
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。

 

?
1
2
3
4
SQL> select myseq1.nextval from dual;
    NEXTVAL
----------
        120

 

 

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

 

?
1
2
3
4
SQL> select myseq1.nextval from dual;
    NEXTVAL
----------
        130

 

 

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

 

?
1
2
3
4
SQL> select myseq1.currval from dual;
    CURRVAL
----------
        120

 

 

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

 

调用nextval的值,

 

?
1
2
3
4
SQL> select myseq1.nextval from dual;
    NEXTVAL
----------
        140

 

 

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

 

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

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值