`
qianyiyiding
  • 浏览: 7442 次
社区版块
存档分类
最新评论

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的用法,最基本的用法,拔高的不实用

    sqlserver-oracle 数据类型对照

    - `CURRVAL`和`NEXTVAL`在Oracle中处理序列,SQL Server中使用`IDENT_CURRENT`和`IDENTITY`属性。 - `NULLIF`在Oracle和SQL Server中用于比较并返回NULL。 - `UID`、`SUSER_ID`、`USER_ID`、`USER`、`CURRENT_...

    Oracle中主键自增实例

    在Oracle数据库系统中,主键(Primary Key)是表中的一个或一组字段,它们的值在整张表中是唯一的,用于唯一标识每一条记录。然而,与MySQL等其他数据库不同,Oracle并没有内置的自动递增(auto-increment)功能来...

    oracle中的sequence实现主键增长

    Oracle中的Sequence是数据库管理系统提供的一种机制,用于生成序列化的整数,通常用于主键或唯一标识符,确保数据的唯一性和有序性。在Oracle中,Sequence不同于其他数据库系统的自增字段,例如SQL Server中的`...

    调试oracle触发器方法

    在Oracle数据库中,触发器(Triggers)是一种存储过程,它们自动执行,当特定的数据库事件发生时,如INSERT、UPDATE或DELETE操作。调试Oracle触发器是开发和维护数据库应用程序时的重要步骤,可以帮助我们找出潜在的...

    oracle中设置自增主键参考

    ### Oracle中设置自增主键方法详解 在Oracle数据库中,自增主键是一种非常实用且常见的设计模式,它能够确保表中的每一条记录都拥有一个唯一的标识符,这对于数据的管理和查询非常重要。本文将详细介绍如何在Oracle...

    oracle中自动编码

    ### Oracle中的自动编码 在Oracle数据库管理中,自动编码(Auto-Increment)是一种常见的功能需求,主要用于实现表中某一字段(通常为`主键`)的自动递增填充。这在处理大量数据记录时非常有用,能有效简化数据管理...

    Oracle与postgres的区别和转化

    在 Oracle 中,可以使用序列名.nextval 和序列名.currval 来访问序列,而在 Postgres 中,使用 nextval(‘序列名’)和 currval(‘序列名’)来访问序列。 递归 SQL 语句 在 Oracle 中,使用 start with…...

    Oracle与DB2的对应关系

    在 Oracle 中,序列是作为一种数据库对象存在,可以 Create 和 Drop,并通过 SELECT seqname.nextval FROM dual 来实现序列值得引用和自动增加(或减少);在 DB2 中没有对应的数据库对象,只能通过在某一列上实现 ...

    Oracle生成不重复票号与LPAD,RPAD与NEXTVAL函数解析

    `NEXTVAL()`函数是Oracle中的序列操作符,用于获取序列的下一个值。序列(SEQUENCE)是一种特殊的数据库对象,用于自动地生成一系列有序的数值,通常用作主键的默认值。例如,`REFUNDSEQ.NEXTVAL`会返回序列`...

    mssql2oracle类型对比

    - `CURRVAL`和`NEXTVAL`: 用于生成序列值,SQL Server中可以通过`identity`列类型结合`@@IDENTITY`、`IDENT_SEED()`和`IDENT_INCR()`函数来实现类似功能。 通过以上对比,可以看出SQL Server与Oracle之间的数据...

    oracle数据库字段值自动加1

    Oracle 数据库中,字段值自动加 1 是一个常见的需求,特别是在数据插入时需要自动生成唯一标识符的情况下。下面将详细介绍如何实现 Oracle 数据库字段值自动加 1。 首先,需要创建一个表来存储数据。在本示例中,...

    Oracle中的dual

    Oracle 中的 Dual Dual 是 Oracle 中的一个虚拟表,用于构成 SELECT 语句的语法规则。 Oracle 保证 Dual 表中永远只有一条记录。Dual 表的存在使得我们可以使用它来执行各种操作,以下是 Dual 表的一些应用场景: ...

    oracle试题

    12. **序列访问**:Oracle中的序列可以通过CURRVAL和NEXTVAL这两个伪列进行访问,所以A.CURRVAL 和 NEXTVAL是正确答案。 13. **创建错误视图**:带有FORCE选项的视图可以创建,即使源表或查询中存在错误,所以A....

    ORACLE SEQUENCE的简单介绍

    ### ORACLE SEQUENCE 的详细介绍与应用 #### 一、概述 在数据库开发和管理中,自动编号是一...以上是关于 Oracle Sequence 的详细介绍及应用场景,希望能帮助开发者更好地理解和使用 Oracle 数据库中的这一强大工具。

    oracle中如何实现ID自增

    ### Oracle中实现ID自增的方法 #### 序列(Sequence)与触发器(Trigger)结合使用 在Oracle数据库中,实现ID自增的一种常见方法是通过结合使用序列(Sequence)和触发器(Trigger)。这种方法非常实用,特别是在...

    Oracle插入数据时获取自增ID

    在Oracle中,如果需要获取刚插入的数据的ID值,可以使用`CURRVAL`属性,它返回最近一次调用`NEXTVAL`所生成的值。例如,在插入数据后立即查询`seq_atable.CURRVAL`: ```sql SELECT seq_atable.CURRVAL FROM dual; `...

    oracle实现属性的自增

    Oracle 数据库中实现属性的自增是通过序列和触发器来实现的。当给表中插入数据时触发触发器,触发器从序列中得到相应的数值放入相应的位置,这样实现属性的自增。 知识点一: Oracle 中没有 auto_increment 属性 ...

    详解Oracle数据库中DUAL表的使用

    Oracle 数据库中 DUAL 表的使用 DUAL 表是 Oracle 数据库中一个特殊的表,它是任何用户都可以读取的公共表。DUAL 表的用途非常广泛,常用在没有目标表的 Select 语句块中。下面都是 DUAL 表的一些常见使用场景: ...

Global site tag (gtag.js) - Google Analytics