Oracle sequence排序的使用

时间:2021-07-19 07:57:12

最近公司的项目中好多用到了Seq排序的,所以网上找些记录一下吧.

通过以下直接查询出所有的seq列表:

select * from user_sequences;

查询结果如下:

Oracle sequence排序的使用

查询结果和创建的基本差不多吧,创建seq的语句(可以直接创建,以下为默认创建的参数):

比较重点的就是最小值,最大值,起始值,每次增加值

-- Create sequence
create sequence SEQ_T
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
cache 20;

详细解释一下:

INCREMENT BY:指定序列增长步长。可以为正(升序)、负整数(降序),但不能为0。最高精度28。
START WITH: 指定序列起始数。默认为序列最小值。
MAXVALUE :指定序列最大值。最大28位。必须大于等于起始值且大于等于序列最小值。
NOMAXVALUE: 无最大值(实际为10^27或-1)。default
MINVALUE :指定序列最小值。
NOMINVALUE :无最小值(实际为1或-10^26)。Default
CYCLE :指定序列达到最大值或最小值后继续从头开始生成。
NOCYCLE :不循环生成。Default.
CACHE :指定数据库内存中预分配的序列值个数,以便快速获取。最小cache值为2。
Cache参数最大值为:(CEIL (MAXVALUE - MINVALUE)) / ABS (INCREMENT)
NOCACHE :不指定缓存数,默认缓存20
ORDER :指定order条件保证序列按请求顺序生成。此条件适用于RAC环境。
NOORDER :不保证序列按请求顺序生成。

使用方法就比较简单了:

select SEQ_USERROLE.NEXTVAL from dual

可以直接获取到下一个增长id的值.

部分内容源自Google.com.hk搜索

部分内容摘自http://blog.csdn.net/indexman/article/details/37653911(如有侵权请联系删除)