`

Oracle数据库中sequence的用法

阅读更多
在Oracle数据库中,sequence等同于序列号,每次取的时候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掉(shutdown abort),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;
分享到:
评论

相关推荐

    Oracle sequence 重置(失效恢复)

    通过以上步骤,我们可以有效地解决Oracle数据库中Sequence失效的问题。需要注意的是,在实际应用中,建议先在测试环境中验证脚本的正确性,然后再部署到生产环境中。此外,还需要确保有足够的权限来执行这些操作,并...

    Oracle数据库常见维护问题手册-精典

    Oracle数据库中有很多内置的系统表,这些表对于数据库管理来说非常重要。例如,`v$database`用于查看数据库的状态,`v$datafile`用于查看数据文件的相关信息等。 **连接数据库的常用命令格式** 连接Oracle数据库有...

    Oracle数据库操作文档

    - 使用前面介绍的导入方法将旧库中的数据迁移到新创建的数据库中。 #### 四、清空表结构 如果需要清空某个表的数据,可以使用PL/SQL Developer工具完成: 1. **导出表结构** - 登录PL/SQL Developer,选择...

    Oracle数据库中序列的使用

    本文将详细介绍Oracle数据库中序列的创建、修改以及删除方法,并通过一个具体的示例来演示序列的使用。 #### 序列的基本概念 序列是一种能够按需生成连续整数的数据库对象。它可以用于自动填充某些字段,特别是当...

    Oracle数据库基础教程:入门其实很简单

    - 创建序列:CREATE SEQUENCE语句的使用方法。 - 使用序列:NEXTVAL、CURRVAL等序列操作的使用。 6. **用户、角色与权限控制**: - 用户管理:如何创建、修改、删除用户。 - 角色管理:如何创建、分配角色。 -...

    vcenter6.0采用oracle11g独立数据库

    2. **在Oracle数据库中创建相关表空间和用户**: - **创建表空间**:使用以下SQL命令创建一个名为“VPX”的表空间,该表空间将用于存储vCenter Server的所有数据。 ``` CREATE SMALLFILE TABLESPACE "VPX" DATA...

    老二牛车在Oracle数据库上构建JAVA应用程序二理论课.pdf

    整体来看,这些知识点覆盖了Oracle数据库结构定义、数据操作优化、以及Java环境中的数据库编程,非常适合想要在Oracle数据库上构建Java应用程序的开发者学习。通过对本节内容的深入学习,可以有效掌握在Java应用程序...

    Oracle数据库基础知识

    Oracle数据库的基础知识包括数据库的结构、存储管理、管理方法、网络应用以及常用任务处理技巧。通过学习和掌握这些知识,可以有效地管理和利用Oracle数据库,满足企业和组织的数据库需求。此外,随着技术的发展,...

    ORACLE数据库学习笔记

    Oracle数据库是一种广泛使用的关系型数据库管理系统,其在企业级应用中占据重要地位。本文主要针对ORACLE数据库的学习笔记进行深入解析。 首先,SQL是Structured Query Language的缩写,即结构化查询语言,它是用于...

    oracle数据库主键自动生成

    在 Oracle 数据库中,可以使用以下语句创建一个序列: ```sql CREATE SEQUENCE 序列名 MINVALUE 1 MAXVALUE 9999999999999999999999999999 NOCYCLE CACHE 20; ``` 这个序列从 1 开始,每次增加 5, cache 20 表示...

    较实用的ORACLE数据库死锁查杀

    为了有效应对Oracle数据库中的死锁问题,我们可以使用以下SQL查询语句来进行死锁检测: ```sql SELECT bs.username "BlockingUser", ws.username "WaitingUser", bs.SID "SID", ws.SID "WSID", bs.serial# ...

    Oracle数据库实战培训

    ### Oracle数据库实战培训知识点详解 #### 一、Oracle数据库特点 1. **数据的结构化**:Oracle数据库采用关系模型,所有的数据都被组织成表格的形式,每一列具有明确的数据类型,这种结构化的特性使得数据管理和...

    Oracle数据库中imp导入数据

    ### Oracle数据库中IMP导入数据详解 #### 一、引言 在Oracle数据库管理与维护过程中,数据导入是一项非常重要的操作。对于刚接触Oracle的新手来说,掌握如何使用`IMP`命令进行数据导入尤为关键。本文将详细介绍...

    oracle 主键自增 sequence

    ### Oracle 主键自增 Sequence 的实现与应用 #### 一、Sequence 的概念及...综上所述,`Sequence` 在 Oracle 数据库中是一种非常有用的工具,能够帮助开发者轻松地实现主键自增等功能,提高数据库操作的效率和便利性。

    创建oracle数据库中表的主键和自增

    ### 创建Oracle数据库中表的主键和自增 在Oracle数据库中实现自增主键是一项常见但非常重要的功能。这不仅有助于确保数据的唯一性,还能简化开发过程中的某些环节,尤其是在需要自动增长的主键时。下面将详细介绍...

    Oracle备用数据库的使用方法.pdf

    Oracle备用数据库,也称为备用数据库或备用实例,是Oracle数据库管理系统中的一个重要概念,主要用于灾难恢复和高可用性方案。在Oracle环境中,备用数据库通常用于在主数据库发生故障时快速接管服务,以确保业务连续...

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

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

    Oracle数据库基础知识 ISSUE1.0

    使用`SQL*Loader`工具可以方便地将文本数据导入到Oracle数据库中,或者将数据库中的数据导出为文本格式。 - **4.12 如何更新当前数据库日志备份方式为archive** 可以通过修改数据库的归档模式来启用归档日志模式...

    oracle数据库实用操作方法.zip

    这个压缩包文件"oracle数据库实用操作方法.zip"显然包含了关于如何管理和操作Oracle数据库的一些关键步骤。接下来,我们将深入探讨其中涵盖的五个主要知识点。 1. **创建表空间**: 表空间在Oracle数据库中是用来...

Global site tag (gtag.js) - Google Analytics