创建序列
oracle可以用sequence关键字创建序列,语法如下:
1 | create sequence [user.]sequence_name |
参数说明:
- user:也就是schema,如果没有表明,则默认是用当前的
- increment:默认1,即每次增加的步长。-1则是减少
- start with:开始的数字。如果有设定最小值minvalue,初始值一定不能小于minvalue
- maxvalue:为序列指定可生成的最大值
- minvalue:指定序列的最小值
- nocycle:一直累加,不循环
- cache:预分配,可以加快访问速度。参数可接受最小值为2。在循环序列中,cache值必须小于cycle的值。cache最大值要小于
(ceil(maxvalue-minvalue))/abs(increment)
1 | create sequence seq |
获取序列的时候使用nextval,需要注意的是,第一次返回的其实是初始值,之后返回的是每次完成increment后的值。如:
1 | select seq.nextval from dual; |
修改序列
修改序列还是用alter,不过呢,并不能修改start参数,需要想要修改start值,需要删除序列再重新创建。
1 | alter sequence [user.]sequence_name; |
删除序列
删除自然用drop
1 | drop sequence sequence_name; |