Oracle 序列的创建、使用、修改、删除
发布时间:2020-12-12 14:28:35 所属栏目:百科 来源:网络整理
导读:Oracle序列 概念: 所谓序列,在oracle中就是一个对象,这个对象用来提供一个有序的数据列,这个有序的数据列的值都不重复。 1.序列可以自动生成唯一值 2.是一个可以被共享的对象 3.典型的用来生成主键值的一个对象 4.可以替代应用程序代码 5.当sequence的值
Oracle序列
概念:
所谓序列,在oracle中就是一个对象,这个对象用来提供一个有序的数据列,这个有序的数据列的值都不重复。
1.序列可以自动生成唯一值 2.是一个可以被共享的对象 3.典型的用来生成主键值的一个对象 4.可以替代应用程序代码 5.当sequence的值存放在缓存中时可以提高访问效率。 创建序列语法: CREATE SEQUENCE name [INCREMENT BY n] [START WITH n] [{MAXVALUE n | NOMAXVALUE}] [{MINVALUE n | NOMINVALUE}] [{CYCLE | NOCYCLE}] [{CACHE n | NOCACHE}] note: 1.increment by n:表明值每次增长n(步长) 2.start with n: 从n开始 3.{MAXVALUE n | NOMAXVALUE}: 设置最大值 4.{MINVALUE n | NOMINVALUE}: 设置最小值,start with不能小于最小值。 5.CYCLE | NOCYCLE : 是否循环,建议不使用 6.CACHE n | NOCACHE : 是否启用缓存。 例如: create sequence emp_id_seq start with 1 increment by 1 nomaxvalue nominvalue nocycle nocache; note:可以通过数据字典user_sequences查看当前用户所拥有的序列信息。 例如: select sequence_name,min_value,max_value,last_number from user_sequences where sequence_name = 'EMP_ID_SEQ'; 序列的属性(伪列): 1.nextval : 返回下一个可用的序列值。 就算是被不同的用户调用,每次也返回一个唯一的值。 2.currval :获取序列当前的值。 在currval调用之前,必须保证nextval已经获取过一次值。 使用sequence: 例如: 1.向表中插入数据 insert into emp values(emp_id_seq.nextval); 2.查看序列的当前值 select emp_id_seq.currval from dual; 3.获取序列的下一个值。 select emp_id_seq.nextval from dual; 缓存: 使用缓存可以提高sequence的访问效率 修改sequence: ALTER SEQUENCE name [INCREMENT BY n] [{MAXVALUE n | NOMAXVALUE}] [{MINVALUE n | NOMINVALUE}] [{CYCLE | NOCYCLE}] [{CACHE n | NOCACHE}] note: 1.必须是序列的拥有者,或者具有alter权限 2.修改后的序列,只对之后的值起作用。 3.不能修改start with,如果想改,只能删除,重新创建,启动。 删除sequence: drop sequence seq_name; 例如: drop sequence emp_id_seq; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |