欢迎来到代码驿站!

Oracle

当前位置:首页 > 数据库 > Oracle

Oracle中NEXTVAL案例详解

时间:2022-08-26 09:11:51|栏目:Oracle|点击:

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数据库字段自增长(两种方式)

栏    目:Oracle

下一篇:oracle创建用户过程详解

本文标题:Oracle中NEXTVAL案例详解

本文地址:http://www.codeinn.net/misctech/211875.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有