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内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • oracle+mybatis-plus+springboot实现分页查询的实例

    今天蠢了一上午才弄出这玩意,话不多说上代码! 1.建一个配置类 package com.sie.demo.config; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.PaginationInte

  • springboot+mybatis-plus+oracle实现逻辑删除

    最近在做一个前后端分离的小项目,需要删除用户表的用户,但是用户再别的表做了外键,所以只能做成逻辑删除,一通百度查资料后得以实现: 1.用户实体类 package com.sie.demo.entity; import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.

  • Oracle区别ADG与DG案例详解

         在上云后的Oracle数据灾备场景中,我们经常听到DBA迁移工程师讲到"在这个项目中用ADG进行数据实时备份,ADG比DG更好!".究竟ADG作Oracle数据灾备的优势在什么地方? 一.ADG主要解决了DG时代读写不能并行的问题         DG时代的数据同步方式如采用Redo Log的物理方式,则数据库同步数据快.耗用资源低,但存在一个大问题.         Oracle 11G以前的Data Guard物理备份数据库,可以以只读的方式打开数据,但这时日志的数据同步

  • oracle创建用户过程详解

    1.首先用管理员用户登陆sqlplus: sqlplus "sysman/安装时设置的密码" 2.创建用户 create user userName identified by password; 创建用户 userName,密码为 password 3.给用户授权 grant dba to userName; --授予DBA权限 grant unlimited tablespace to userName;--授予不限制的表空间 grant select any table to u

  • Oracle之TO_DATE用法详解

    目录 TO_DATE格式(以时间:2007-11-02 13:45:25为例) 1. 日期和字符转换函数用法(to_date,to_char) 2. 字符串和时间互转 3.求某天是星期几 4. 两个日期间的天数 5. 时间为null的用法 6.月份差 7. 日期格式冲突问题 8.查询特殊条件天数 9. 查找月份 10. Next_day的用法 11.获得小时数 12.年月日的处理 13.处理月份天数不定的办法 14.找出今年的天数 15.yyyy与rrrr的区别 16.不同时区的处理 17. 5

  • 如何使用Oracle PL/SQL 实现发送电子邮件功能(UTL_MAIL)

    大家好,我是只谈技术不剪发的 Tony 老师. 我们在开发 Oracle 数据库程序时,如果想要通过 PL/SQL 存储过程实现发送邮件的功能,大概可以使用以下三种方法: 利用 UTL_TCP程序包基于 TCP 协议发送邮件.这种方法比较原始,需要用户编写基础交换代码. 利用 UTL_SMTP 程序包基于 SMTP 协议发送邮件.这种方法比编码 TCP 操作简单很多,支持发送电子邮件的各种操作,因此使用非常广泛. 利用 UTL_MAIL 程序包发送邮件.这种方法最简单,支持常用的邮件功能,不需要

  • Oracle存储过程案例详解

    创建简单存储过程(Hello World) 为了方便读者简单易懂,我将下面使用到的表复制给大家. 具体表中的数据,请大家自己填写 -- Create table create table EMP ( empno NUMBER(4) not null, ename VARCHAR2(10), job VARCHAR2(9), mgr NUMBER(4), hiredate DATE, sal NUMBER(7,2), comm NUMBER(7,2), deptno NUMBER(2) ) cre

  • Oracle rac案例讲解

    rac是什么? 多个不同服务器上的实例,访问共享的数据库文件,扩展了CPU和内存,提高性能:多节点,实现了HA. rac解决什么问题 高可用性:自动切换.负载均衡 高性能:多实例.更多连接.并发执行 高扩展:不停机扩展节点. 怎么实现的 组成 3个层级: 集群软件:集群管理,节点增删.心跳.同步:包括2个组件:表决磁盘.集群注册服务. rac数据库软件:提供数据库实例: rac数据库:共享存储,共享文件. 1.拓扑图 2.存储划分例子 现在共享存储建议ASM,仅说明用. rac常用操作 1.启停

  • Oracle中NEXTVAL案例详解

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

  • mysql中TIMESTAMPDIFF案例详解

    1.  Syntax TIMESTAMPDIFF(unit,begin,end); 根据单位返回时间差,对于传入的begin和end不需要相同的数据结构,可以存在一个为Date一个DateTime 2. Unit 支持的单位有 MICROSECOND SECOND MINUTE HOUR DAY WEEK MONTH QUARTER YEAR 3. Example 下面这个例子是对于TIMESTAMPDIFF最基本的用法, 3.1 求 2017-01-01 - 2017-02-01 之间有几个月

  • Oracle中触发器示例详解

    前言 在ORACLE系统里,触发器类似过程和函数,都有声明,执行和异常处理过程的PL/SQL块. 触发器类型 触发器在数据库里以独立的对象存储,它与存储过程和函数不同的是,存储过程与函数需要用户显示调用才执行,而触发器是由一个事件来启动运行.即触发器是当某个事件发生时自动地隐式运行.并且,触发器不能接收参数.所以运行触发器就叫触发或点火(firing).ORACLE事件指的是对数据库的表进行的INSERT.UPDATE及DELETE操作或对视图进行类似的操作.ORACLE将触发器的功能扩展到了触

  • oracle中的视图详解

    1.视图的概述 视图其实就是一条查询sql语句,用于显示一个或多个表或其他视图中的相关数据.视图将一个查询的结果作为一个表来使用,因此视图可以被看作是存储的查询或一个虚拟表.视图来源于表,所有对视图数据的修改最终都会被反映到视图的基表中,这些修改必须服从基表的完整性约束,并同样会触发定义在基表上的触发器.(Oracle支持在视图上显式的定义触发器和定义一些逻辑约束) 2.视图的存储 与表不同,视图不会要求分配存储空间,视图中也不会包含实际的数据.视图只是定义了一个查询,视图中的数据是从基表中获取

  • Oracle中的函数详解

    目录 一.数值函数 二.字符函数 三.日期时间函数 四.转换函数 五.辅助函数 六.聚合函数 七.分析函数 一.数值函数 1.mod(n1,n2):n1除以n2的余数. 如果n2为0,则返回n1. select mod(23,8),mod(24,8) from dual;--返回:7,0 2.power(n1,n2):返回数字n1的n2次幂; exp(y):返回e的y次幂.(e为数学常量); log(x,y):返回以x为底的y的对数: ln(y):返回e为底的自然对数. select power

  • Oracle数据库的备份与恢复案例详解

    目录 1 逻辑备份/恢复(导出/导入) 1.必备参数 2.owner参数 3.tables参数 4.关于inctype参数 2 物理备份/恢复 1.冷备份/恢复 2.热备份/恢复 3 利用PL/SQL Developer备份数据库 在Oracle数据库的使用过程中,备份与恢复是经常遇到的操作.Oracle中的备份分为两大类:逻辑备份和物理备份.其中物理备份又分为两类:冷备份和热备份.本节将简要讲述如何利用各种备份手段进行Oracle数据库的备份与恢复. 1 逻辑备份/恢复(导出/导入) 逻辑备份

  • ORACLE数据库中Rownum用法详解

    ORACLE 中ROWNUM用法总结!  对于 Oracle 的 rownum 问题,很多资料都说不支持>,>=,=,between...and,只能用以上符号(<.<=.!=),并非说用>,& gt;=,=,between..and 时会提示SQL语法错误,而是经常是查不出一条记录来,还会出现似乎是莫名其妙的结果来,其实您只要理解好了这个 rownum 伪列的意义就不应该感到惊奇,同样是伪列,rownum 与 rowid 可有些不一样,下面以例子说明: 假设某个表

  • Python中return用法案例详解

    python中return的用法 1.return语句就是把执行结果返回到调用的地方,并把程序的控制权一起返回 程序运行到所遇到的第一个return即返回(退出def块),不会再运行第二个return. 例如: def haha(x,y): if x==y: return x,y print(haha(1,1)) 已改正: 结果:这种return传参会返回元组(1, 1) 2.但是也并不意味着一个函数体中只能有一个return 语句,例如: def test_return(x): if x >

随机推荐