Oracle中select SEQ_YX.nextval from dual是什么意思?

 

一、示例描述

   Oracle中select SEQ_YX.nextval from dual是什么意思?_第1张图片

   dual : 是oracle的虚拟表,不是真实存在的。
   SEQ_YX : 这个是开发人员自己定义的一个序列名称,序列一般用于生成id号。
        如:SEQ_CODE_COMMON
   SEQ_YX.nextval 就是取序列的下一个值。
        如:SEQ_CODE_COMMON.NEXTVAL  

二、序列定义

序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。不占用磁盘空间,占用内存。其主要用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。

三、序列查询

   通过SQL语句查询序列:

      例:select * from user_sequences    

       1、USER_OBJECTS:查看用户拥有的序列。

       2、USER_SEQUENCES:查看序列的设置。

四、创建序列 

语法说明:

创建序列
  语法 CREATE SEQUENCE 序列名 [相关参数]
参数说明
   MAXVALUE:序列可生成的最大值。(NOMAXVALUE:不限制最大值)
   MINVALUE:序列可生成的最小值。(NOMINVALUE:不限制最小值)
   START WITH:序列的初始值。(默认1)
   INCREMENT BY :序列变化的步进,负值表示递减。(默认1)
   CYCLE:用于定义当序列产生的值达到限制值后是否循环。(NOCYCLE:不循环,CYCLE:循环)
   CACHE:表示缓存序列的个数,数据库异常终止可能会导致序列中断不连续的情况,默认值为20,如果不使用缓存可设置             NOCACHE。
   ORDER:保证序列号按请求顺序产生。如果想以序列号作为timestamp(时间戳)类型的话,可以采用该选项;NOORDER:此选     项跟ORDER相对应,并不按照请求的顺序进行生成。

五、示例说明

     Oracle中select SEQ_YX.nextval from dual是什么意思?_第2张图片

   create sequence SEQ_CODE_COMMON  --- 创建序列名为 SEQ_CODE_COMMON
   minvalue 1  --- 最小值为1
   maxvalue 9999999999999999999999999999  --- 最大值为9999999999999999999999999999
   start with 921  --- 初始值 921
   increment by 1  --- 每次增长值 1
   cache 20  --- 缓存大小 20
   order  --- 序列号按请求顺序生成

声明:文章仅供参照,如有勘误,欢迎探讨交流,指点纠正,本着相互学习的心态,查漏补缺共同进步!!!

你可能感兴趣的:(Java)