Oracle中NEXTVAL案例详解

1.什么是sequence?其作用是什么?

        在oracle数据库中,什么是序列呢?其中的作用是什么呢?其实sequence是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。其主要的用途是生成表的主键值,可以在插入语句中引用,在插入之前,获取序列号nextval值,然后进行插入。也可以通过查询检查当前值,或使序列增至下一个值。

2.如何定义一个sequence?

  create sequence inr_requirment_squence  
  increment by 1 -- 每次加几个
  start with 1 -- 从1开始计数
  nomaxvalue -- 不设置最大值
  nocycle -- 一直累加,不循环
  cache 10;

    上面语句则创建了一个sequence?

 3.如何获取一个sequence的值?

       select inr_requirment_squence.currval from dual  –获取当前的sequence的值,第一次nextval返回的是初始值;随后的nextval会自动增加你定义的increment by值, 然后返回增加后的值。currval 总是返回当前sequence的值,但是在第一次nextval 初始化之后才能使用currval,否则会出错。一次nextval会增加一次sequence的值, 所以如果你在同一个语句里面使用多个nextval。

4.可以在哪些地方使用sequence?

– 不包含子查询、snapshot、view的 select 语句

– insert语句的子查询中

– nsert语句的values中

– update 的 set中

在实际开发中,比如一个表中的主键需要先得到主键id,可以用nextval来获下一个取序列值,然后再进行其他操作。

5.如何删除sequence?

         drop sequence policy_id_seq; –policy_id_seq为sequence的名字,如果要改变sequence中的初始值,必须先删除序列号然后再进行创建。你或者是该sequence的owner,或者有alter any sequence权限才能改动sequence,直接用alter语句进行sequence的更新。   

到此这篇关于oracle中nextval案例详解的文章就介绍到这了,更多相关oracle中nextval内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐