oracle中序列的学习

序列:
序列是用来生成唯一,连续的整数的数据库对象,在Oracle中没有identity约束,通常就使用序列来自动生成主键或唯一键的值.序列可以按升序排列,也可以按降序排列.

创建序列语法:
Create sequence 序列名
[start with integer]
[increment by integer]
[maxvalue integer| nomaxvalue]
[minvalue integer| nominvalue]
[cycle | nocycle]
[cache integer | nocache];

注:
start with: 指定生成第一个序列号,对于升序列,其默认值为序列最小值;对于降序序列,其默认值为序列的最大值
increment by 用于指定序列号之间的间隔,其默认值为1,如果integer为正值,则生成的序列按升序排列,如果integer为负值,则生成的序列将按降序排列.
Maxvalue 指定序列可以生成的最大值.
Nomaxvalue 如果指定了nomaxvalue,oracle将升序序列的最大值设为1027,将降序序列的最大值设为-1.这是默认选项
Minvalue 指定序列的最小值, minvalue必须小于或等于start with的值,并且必须小于maxvalue的值
Nominvalue 如果指定了nominvalue,oracle将升序的最小值设为1,或将降序序列的最小值设为-1026.这是默认值.
Cycle 指定序列在达到最大值或最小值后,将继续从头开始生成值.
Nocycle 指定序列在达到最大值或最小值后,将不能再继续生成值.这是默认选项
Cache 使用cache选项可以预先分配一组序列号,并将其保留在内存中,这样可以更快地访问序列号.当用完缓存中的所有序列号.oracle将生成另一组数值,并将其保留在缓存中.
Nocache 不会加快访问速度而预先分配序列号,如果在创建序列时忽略了cache和nocache,orcale将默认缓存20个序列号

访问序列语法:
序列名.nextval 创建序列后第一次使用nextval时,将返回该序列的初始值,以后在引用nextval时,将使用increment by子句的值来增加序列值,并返回这个新值.
例如:
Insert into toys (toyed,toyname,toyprice) value(序列名.nextval,’tom’,25)
序列名.currval 返回序列的当前值,即最后一次引用nextval时返回的值
例如:
Select 序列名.currval from dual;

更改序列语法:
Alter sequence [用户名(模式).]序列名
[increment by integer]
[maxvalue integer| nomaxvalue]
[minvalue integer| nominvalue]
[cycle | nocycle]
[cache integer | nocache];
注:不能修改序列的start with参数,在修改序列时,应注意升序序列的最小值应小于最大值

删除序列语法:
drop sequence [用户名(模式).]序列名;

你可能感兴趣的:(oracle,cache)