`

关于oracle的自增 sequence

阅读更多

在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方。   

 1、Create Sequence    你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限,    CREATE SEQUENCE emp_sequence    INCREMENT BY 1  -- 每次加几个  START WITH 1   -- 从1开始计数  NOMAXVALUE    -- 不设置最大值  NOCYCLE     -- 一直累加,不循环  CACHE 10;    一旦定义了emp_sequence,你就可以用CURRVAL,NEXTVAL  CURRVAL=返回 sequence的当前值  NEXTVAL=增加sequence的值,然后返回 sequence 值  

比如:  emp_sequence.CURRVAL  emp_sequence.NEXTVAL    可以使用sequence的地方:  - 不包含子查询、snapshot、VIEW的 SELECT 语句  - INSERT语句的子查询中  - NSERT语句的VALUES中  - UPDATE 的 SET中    可以看如下例子:  INSERT INTO emp VALUES  (empseq.nextval, 'LEWIS', 'CLERK',7902, SYSDATE, 1200, NULL, 20);    SELECT empseq.currval FROM DUAL;    但是要注意的是:    - 第一次NEXTVAL返回的是初始值;随后的NEXTVAL会自动增加你定义的INCREMENT BY值,然后返回增加后的值。CURRVAL总是返回当前SEQUENCE的值,但是在第一次NEXTVAL初始化之后才能使用CURRVAL,否则会出错。一次NEXTVAL会增加一次SEQUENCE的值,所以如果你在同一个语句里面使用多个NEXTVAL,其值就是不一样的。明白?    -如果指定CACHE值,ORACLE就可以预先在内存里面放置一些sequence,这样存取的快些。cache里面的取完后,oracle自动再取一组到cache。 使用cache或许会跳号, 比如数据库突然不正常down掉(shutdownabort),cache中的sequence就会丢失. 所以可以在create sequence的时候用nocache防止这种情况。   

 2、Alter Sequence    你或者是该sequence的owner,或者有ALTER ANY SEQUENCE 权限才能改动sequence.可以alter除start至以外的所有sequence参数.如果想要改变start值,必须 drop sequence 再 re-create.    Alter sequence 的例子    ALTER SEQUENCE emp_sequence  INCREMENT BY 10  MAXVALUE 10000  CYCLE   -- 到10000后从头开始  NOCACHE ;    影响Sequence的初始化参数:    SEQUENCE_CACHE_ENTRIES =设置能同时被cache的sequence数目。    可以很简单的Drop Sequence    DROP SEQUENCE order_seq;文章来源http://oracle.chinaitlab.com/exploiture/35308.html

分享到:
评论

相关推荐

    oracle 主键自增 sequence

    ### Oracle 主键自增 Sequence 的实现与应用 #### 一、Sequence 的概念及用途 在 Oracle 数据库中,`Sequence` 是一种用于生成一系列唯一数值的对象。这些数值可以按照特定的规则递增或递减,并且可以设定是否循环...

    Oracle创建自增字段方法-ORACLE SEQUENCE的简单介绍

    Oracle 创建自增字段方法-ORACLE SEQUENCE 的简单介绍 Oracle SEQUENCE 是一种特殊的数据库对象,用于生成一系列唯一的数值,通常用于主键或其他需要唯一标识的字段。下面将详细介绍 Oracle 创建自增字段方法-...

    oracle实现自增

    oracle 实现自增;使用sequence,和trigger实现表字段自增

    ORACLE自增主键设置方法

    ### ORACLE自增主键设置方法 在Oracle数据库中,自增主键是一种常见的主键设计方式,它能够确保每条记录的唯一性,并且在插入新记录时自动递增,简化了数据管理流程。本文将详细介绍如何在Oracle中设置自增主键。 ...

    oracle中的sequence实现主键增长

    在Oracle中,Sequence不同于其他数据库系统的自增字段,例如SQL Server中的`IDENTITY`属性。Sequence可以在不依赖于任何表的情况下独立创建,并且可以在插入记录时动态地获取下一个可用的序列号。 以下是对Sequence...

    如何实现Oracle自增,序列,触发器都有

    ### 如何实现Oracle主键自增,通过写sequence和触发器 在Oracle数据库中实现主键自增功能可以通过创建序列(sequence)与触发器(trigger)相结合的方式实现。这种方式不仅能够确保数据表中的主键唯一性,还能自动递增...

    Oracle自增序列和触发器生成工具.zip

    本压缩包"Oracle自增序列和触发器生成工具"提供了一种便捷的方式,帮助开发者快速生成这些必要的数据库对象,从而提高开发效率。 首先,让我们了解什么是Oracle自增序列。在Oracle中,序列(SEQUENCE)是一种特殊的...

    Oracle建立自增主键

    本文将详细介绍如何利用Oracle提供的`SEQUENCE`和`TRIGGER`来实现自增主键。 #### 一、概述 在关系型数据库设计中,主键是非常重要的组成部分,它用于唯一标识表中的每一行记录。对于某些应用场景来说,手动为每条...

    MyBatis Oracle 自增序列的实现方法

    在Oracle数据库中,由于没有像MySQL的`auto_increment`或者SQL Server的`IDENTITY`这样的内置机制,所以自增序列的实现通常需要借助于Oracle的`SEQUENCE`对象。MyBatis,作为一个强大的ORM(对象关系映射)框架,...

    oracle中设置自增主键参考

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

    oracle自增序列

    ### Oracle自增序列知识点详解 在数据库应用中,序列是一种常用的数据对象,它能够自动产生唯一的数值,常用于实现表中的主键自增功能。Oracle数据库提供了强大的序列管理功能,可以方便地创建、管理和使用序列。...

    oracle中sequence介绍及应用

    ### Oracle中的Sequence...通过以上步骤,我们可以看到Sequence在Oracle数据库中的强大功能和广泛用途,不仅能够方便地实现主键自增,还能灵活生成各种类型的序列号。这对于日常的数据处理工作来说是非常实用的工具。

    Oracle创建自增字段sequence

    在Oracle数据库中,由于没有像SQL Server那样内置的自增字段功能,我们通常需要通过创建序列(SEQUENCE)和触发器(TRIGGER)来模拟这一效果。以下将详细讲解如何在Oracle中创建自增字段sequence,并讨论其相关知识...

    oracle实现属性的自增

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

    Oracle插入数据时获取自增ID

    ### Oracle插入数据时获取自增ID 在Oracle数据库中,当需要实现类似其他数据库系统(如MySQL、SQL Server等)中的自动增长字段功能时,通常会采用序列(sequence)和触发器(trigger)来实现这一需求。下面将详细...

    oracle通过触发器,实现序列自增

    ### Oracle通过触发器实现序列自增 在Oracle数据库中,序列是一种非常实用的对象,它可以用于自动产生唯一的数值。本文将详细介绍如何通过触发器与序列相结合的方式,在Oracle数据库中实现记录的自增功能。 #### ...

    Oracle创建自增字段–ORACLE SEQUENCE的简单使用介绍

    先假设有这么一个表: 代码... 在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方。 1、Create Sequence 你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限, CREAT

    Oracle主键自增的办法

    在 Oracle 数据库中,与许多其他关系型数据库系统不同,它并没有内置的自动自增字段类型,例如 MySQL 的 `AUTO_INCREMENT` 或 SQL Server 的 `IDENTITY`。但是,Oracle 提供了序列(Sequences)和触发器(Triggers)...

    Oracle中主键自增实例

    以下是一些关于在Oracle中创建主键自增实例的方法和相关知识点。 1. 使用序列(Sequences): Oracle序列是一种数据库对象,可以生成唯一的整数序列。创建序列后,可以在插入新记录时引用它来获取下一个可用的序列...

    powerdesigner创建oracle_数据库表,设置表主键列为自动增长

    - 观察主键列是否按预期自增。 示例SQL脚本: ```sql CREATE TABLE G_EC_LotteryCategory ( lcId NUMBER(3) NOT NULL, lcName NVARCHAR2(30), lcAbbr NVARCHAR2(20), CONSTRAINT PK_G_EC_LOTTERYCATEGORY ...

Global site tag (gtag.js) - Google Analytics