oracle序列详解
序列: 是oacle提供的用于产生一系列唯一数字的数据库对象。序列是一个计数器,一般用来填充主键和计数,51); font-family:宋体; line-height:21.6px">利用它可生成唯一的整数。 一般使用序列自动地生成主码值。一个序列的值是由特殊的Oracle程序自动生成,因此序列避免了在应用层实现序列而引起的性 能瓶颈。Oracle序列允许同时生成多个序列号,而每一个序列号是唯一的。当一个序列号生成时,序列是递增,独立于事务的提 交或回滚。允许设计缺省序列,不需指定任何子句。该序列为上升序列,由1开始,增量为1,没有上限。序列并不会与特定的表关联。 通过创建Oracle序列和触发器实现表的主键自增。
l 自动提供唯一的数值 l 共享对象 l主要用于提供主键值 l 将序列值装入内存可以提高访问效率
序列使用 1.创建序列 ORACLE序列的语法格式为: CREATE SEQUENCE 序列名
1)INCREMENT BY用于定义序列的步长,如果省略,则默认为1,如果出现负值,则代表Oracle序列的值是按照此步长递减的。 2)START WITH 定义序列的初始值(即产生的第一个值),默认为1。 3)MAXVALUE 定义序列生成器能产生的最大值。选项NOMAXVALUE是默认选项,代表没有最大值定义,这时对于递增Oracle序列,系统能够产生的最大值是10的27次方;对于递减序列,最大值是-1。 4)MINVALUE定义序列生成器能产生的最小值。选项NOMAXVALUE是默认选项,代表没有最小值定义,这时对于递减序列,系统能够产生的最小值是?10的26次方;对于递增序列,最小值是1。 5)CYCLE和NOCYCLE 表示当序列生成器的值达到限制值后是否循环。CYCLE代表循环,NOCYCLE代表不循环。如果循环,则当递增序列达到最大值时,循环到最小值;最小值为1。对于递减序列达到最小值时,循环到最大值。如果不循环,达到限制值后,继续产生新值就会发生错误。 ORACLE OCP考试有道题关于序列,如下所示 答案:A 2.删除序列 CREATE SEQUENCE SEQ_TEST DROP SEQUENCE SEQ_TEST; 3:序列使用 CURRVAL: 返回序列的当前值。 你不能使用序列的CURRVAL和NEXTVAL,在下面情况下(具体参见官方文档): 4:序列查看 SELECT * FROM USER_SEQUENCES; SELECT * FROM ALL_SEQUENCES; SELECT * FROM DBA_SEQUENCES; 5:序列修改 不能修改序列的初始值,否则会报ORA-02283: SQL> ALTER SEQUENCE SEQ_TEST START WITH 2; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |