首页 > 经验记录 > 数据库 > 数据库对象_序列

数据库对象_序列

序列

序列(Sequence)可以自动的按照既定的规则实现数据的编号操作

 

序列的完整创建语法

              CREATE SEQUENCE 序列名

                     [INCREMENT BY 步长]

                     [START WITH 开始值]

                     [MAXVALUE 最大值 | NOMAXVALUE]

                     [MINVALUE 最小值 | NOMINVALUE]

                     [CYCLE | NOCYCLE]

                     [CACHE 缓存大小 | NOCACHE];

 

如果是默认序列,那么所有的选项都是默认值,默认初始值是1,最小值是0,最大值是无限大

 

 

查询数据字典—— user_sequences 可以查看序列

SELECT * FROM user_ sequences;

 

要操作一个已经创建完成的序列,则可以使用序列中提供的两个伪列进行操作

序列名称.currval:  表示取得当前序列已经增长的结果,重复调用多次后序列内容不会有任何变化,同时当前序列的大小(LAST_NUMBER)不会改变。

       序列名称.nextval: 表示取得一个序列的下一次增长值,每调用一次序列都会自动增长

对于给出的伪列而言,一定是先使用nextval,而后才可以使用currval,也就是说表示的概念是只有在执行了nextval之后序列才真正进行到了可用的状态

 

 

对于序列之中,缓存是一个非常重要的概念,就是说在序列使用之前,已经在内存中为用户提供好了一系列的生成的序列号,用的时候不是说随用的时候随取,而是已经准备好了

如果设置了缓存,那么数据库出现了问题,那么可能这些缓存的数据就会消失,如果再次使用,就可能会出现跳号关系。

 

 

       序列的最终目的是生成自动增长列,这个情况就需要结合表去一起使用

       在添加语句中直接给想要自增的列上写 序列名称.nextval,就可以了

 

如果要删除序列使用:DROP SEQUENCE 序列名

 

 

 

 

 

 

修改序列的语法..和创建差不多

       ALTER SEQUENCE 序列名称

[INCREMENT BY 步长]

              [MAXVALUE 最大值 | NOMAXVALUE]

              [MINVALUE 最小值 | NOMINVALUE]

              [CYCLE | NOCYCLE]

              [CACHE 缓存大小 | NOCACHE];

 

      

 

 

 


EA PLAYER &

历史记录 [ 注意:部分数据仅限于当前浏览器 ]清空

      00:00/00:00