序列
1序列是oacle提供的用于产生一系列唯一数字的数据库对象。
2使用序列可以实现自动产生主键值
3序列可以在多用户并发环境中使用,为所有用户生成不重复的顺序数字,而且不需要任何额外的I/O开销。
4序列与视图一样,不占用实际的存储空间,只是在数据字典中保留它的定义信息。
5自己模式创建序列,需要create sequence系统权限,其他模式创建序列,需要create any sequence系统权限.
创建序列
create SEQUENCE sequence 【用户模式.】sequence_name
【increment by i】
【start with s】
【maxvalue num| nomaxvalue】
【minvalue num| nominvalue】;
【cache cache | nocache】
【cycle | nocycle】
【order | noorder】
INCREMENT BY: 指定序列号之间的间隔为i,该值可为正的或负的整数,但不可为0。序列为升序,缺省值为1。
START WITH:指定生成的第一个序列为s。在升序时,缺省值为序列的最小值。对于降序,缺省值为序列的最大值。
MAXVALUE:指定序列可生成的最大值。
NOMAXVALUE:为升序指定最大值为1027,为降序指定最大值为-1。
MINVALUE:指定序列的最小值。
NOMINVALUE:为升序指定最小值为1。为降序指定最小值为-1026。
CYCLE | NOCYCLE: //循环/不循环
CACHE n | NOCACHE://分配并存入到内存中
order | noorder:order保证产生的序列值是按序列产生,noorder不保证顺序
举例
create sequence zhou.stu_squ
increment by 1
start with 1
maxvalue 100
minvalue 1
nocycle