一、概述
是oracle提供的用于产生一系列唯一数字的数据库对象。
1、自动提供唯一的数值2、共享对象
3、主要用于提供主键值
4、将序列值装入内存可以提高访问效率
二、创建
1、需要权限:
create sequence 或 create any sequence
2、语法:
CREATE SEQUENCE <sequence_name> [INCREMENT BY n] [START WITH n] [{MAXVALUE n | NOMAXVALUE}] [{MINVALUE n | NOMINVALUE}] [{CYCLE | NOCYCLE}] [{CACHE n | NOCACHE}];
3、参数说明
a) INCREMENT:递增的序列值是n 如果n是正数就递增,如果是负数就递减 默认是1
b) START WITH:开始的值,递增默认是minvalue 递减是maxvalue
c) MAXVALUE | NOMAXVALUE:最大值
d) MINVALUE | NOMINVALUE:最小值
e) CYCLE | NOCYCLE:循环/不循环
f) CACHE | NOCACHE:分配并存入到内存中
4、函数说明
a) NEXTVAL 返回序列中下一个有效的值,任何用户都可以引用
b) CURRVAL 中存放序列的当前值
c) NEXTVAL 应在 CURRVAL 之前指定 ,二者应同时有效
三、删除
DROP SEQUENCE <sequence_name>;
四、修改
ALTER SEQUENCE <sequence_name> [INCREMENT BY n] [START WITH n] [{MAXVALUE n | NOMAXVALUE}] [{MINVALUE n | NOMINVALUE}] [{CYCLE | NOCYCLE}] [{CACHE n | NOCACHE}];
修改序列的注意事项:
1、必须是序列的拥有者或对序列有 ALTER 权限
2、只有将来的序列值会被改变
3、改变序列的初始值只能通过删除序列之后重建序列的方法实现
四、查询信息
SELECT * FROM DBA_SEQUENCES;