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的值調用時,還是和自身會話的當前值一樣。
Tags:
文章來源: