Oracle的Sequence可以实现统一ID管理。
- Sequence的创建
create sequence sequence_name --sequence名称
minvalue 1 --最小值
maxvalue 999 -- 最大值 nomaxvalue 不设置最大值(由机器决定)
start with 1 --从1开始计数,数值可变
increment by 1 --每次加1,数值可变
nocycle --一直累加,不循环;cycle:达到最大值后,将从头开始累加
nocache; --不建缓冲区。 如果建立cache那么系统将自动读取cache值个seq,这样会加快运行速度;如果在单机中使用cache,或者oracle死了,那么下次读取的seq值将不连贯,所以不建议使用cache。
- Sequence的使用
获取当前值(如果是新创建的Sequence,直接获取当前值会报错,因为当前值不存在,应先获取下一个值):
SELECT sequence_name.currval FROM DUAL;
获取下一个值:
SELECT sequence_name.nextval FROM DUAL;
- Sequence的删除
DROP SEQUENCE sequence_name;
- Sequence的修改
alter sequence sequence_name -- 序列名 也可以更改
minvalue 1
maxvalue 99999
start with 1
increment by 1
cycle -- 到99999后,从头开始
nocache;