什么是序列?
序列:
自动提供唯一的数值
共享对象
主要用于提供主键值
将序列值装入内存可以提高访问效率
1.创建序列
语法:
create sequence 序列名
【start with n】-------定义初始值。默认为1
【increment by n】-----定义步长,默认为1
【(maxvalue n | nomaxvalue n)】---- 能产生的最大值,系统能产生的最大值是10的27次方
【(minvalue n | nominvalue n)】-----能产生的最小值,默认最小值为1
【(cycle | nocycle)】-----当序列生成器达到限制后是否循环
【(cache n | nocache)】-----是否对序列缓冲
2.查询序列
查询数据字典视图USER_SEQUENCES获取序列定义信 息
例:SELECT sequence_name, min_value, max_value, increment_by, last_number
FROM user_sequences;
如果指定NOCACHE 选项,则列LAST_NUMBER 显示序 列中下一个有效的值
NEXTVAL 和 CURRVAL 伪列
NEXTVAL 返回序列中下一个有效的值,任何用户都可以引用
CURRVAL 中存放序列的当前值
NEXTVAL 应在 CURRVAL 之前指定 ,二者应同时有效
3.修改序列
修改序列的增量, 最大值, 最小值, 循环选项, 或是否装入内 存
修改序列的注意事项: 必须是序列的拥有者或对序列有ALTER 权限
只有将来的序列值会被改变
改变序列的初始值只能通过删除序列之后重建序列的方法实现
4.删除序列
使用DROP SEQUENCE 语句删除序列
删除之后,序列不能再次被引用
例:DROP SEQUENCE dept_deptid_seq;