以前只是根据书籍和视频教程对Oracle中的序列进行创建,但并没有用到,最近由于对一张表进行频繁的插入,所以感觉用序列还是比较方便的。在序列使用中遇到两个问题,如下:
1.使用序列之前得先用Select XXX.nextval from dual;语句来对序列进行第一步初始化,而不能直接用Select XXX.currval from dual;语句来查看当前的序列值。如果直接使用Select XXX.currval from dual;语句就会出现如下图中的错误提示。
2.如果使用Select XXX.nextval from dual;把序列值给增加的超过你想的值,可以使用Alter sequence XXX increment by -1;语句来对序列进行减运算,直到得到你想要的值。当然语句中‘-1’只是个例子,例如序列当前值为100,你预想值为98,就可以把‘-1’改成‘-2’。当然,调整完成之后,还得用Alter sequence XXX increment by 1;语句把序列增加值调整回来,这样才可以有效的使用序列。