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掉(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来生成主键值。本文将深入探讨如何在MyBatis-Plus(MP)框架中配置Oracle的主键Sequence。 首先,Oracle Sequence是Oracle数据库提供的...
在Oracle数据库中,“CREATE SEQUENCE”和“NEXTVAL”是与序列相关的关键字,序列可以生成一个递增的序列号,这对于主键的自动生成非常有用。 文档中还提到了Oracle Designer,这是Oracle公司提供的另一个设计...
Oracle数据库对象管理是数据库系统中至关重要的一环,它涉及到对数据库中的各种对象,如视图、索引、序列、同义词、用户、权限、角色以及数据字典...通过学习和实践,可以更好地管理和优化Oracle数据库,满足业务需求。
### Oracle 学习笔记知识点详解 #### 一、Oracle 数据库简介 Oracle 是一款由美国甲骨文公司开发的关系型数据库管理系统。它以其强大的数据处理能力、高度的安全性及稳定性而闻名于世,在金融、电信、政府等领域...
### Oracle数据库中常用的数据类型 在Oracle数据库中,数据类型的选择对于存储效率和查询性能至关...通过以上内容的学习,可以对Oracle数据库有一个全面而深入的理解,为高效地管理和利用数据库资源打下坚实的基础。
本文主要针对ORACLE数据库的学习笔记进行深入解析。 首先,SQL是Structured Query Language的缩写,即结构化查询语言,它是用于管理关系数据库的标准语言。SQL主要包括五种类型的子语言:DDL(Data Definition ...
│ Oracle学习笔记.pdf │ Oracle学习笔记.wps │ 安装Oracle后myEclipse不能正常使用.txt │ 手工配置listener.ora【避免出现ORA-12514错误】.txt │ 贴子树状态存储结构.jpg │ 贴子树状态存储结构.sql │ ├─01...
我们可以归纳出一系列关于Oracle SQL学习的关键知识点,包括SQL的基础概念、基本查询语句、函数使用、多表查询、数据处理操作、事务管理、数据定义语言(DDL)、数据操纵语言(DML)以及其他相关的高级特性。...
### Oracle学习笔记精要 #### 第一章:Oracle概述与启动方法 - **Oracle简介**:Oracle是由美国甲骨文公司开发的一款关系型数据库管理系统,广泛应用于企业级应用环境中。 - **Oracle版本演变**: - Oracle8i:...
### Oracle学习笔记知识点详解 #### 一、SQL概述与Oracle简介 - **SQL**(Structured Query Language,结构化查询语言)是一种用于管理关系型数据库的标准语言。它被用来执行各种数据库操作,如查询数据、更新数据...
### Oracle学习精简摘要 #### 1. SQL基础与数据库访问 - **SQL简介** SQL(Structured Query Language,结构化查询语言)是一种用于管理关系数据库的标准编程语言。它被广泛应用于各种数据库系统中,包括Oracle...
总之,Oracle学习资料4涵盖了数据库对象的基本操作,包括用户管理、同名对象、序列的创建和使用,以及视图的创建和维护。这些知识点对于理解和操作Oracle数据库至关重要,同时也是面试、教学和日常开发中常见的技能...
Oracle学习代码是一个面向初学者和开发者提供的资源集合,旨在帮助他们快速掌握Oracle数据库的基本操作和应用。Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,尤其在企业级应用中占据重要地位。通过...
### Oracle学习总结 #### 一、创建表及表结构管理 **1. 创建表** 创建表是数据库设计的基础。在Oracle中,通过`CREATE TABLE`命令可以定义一个新的表及其属性。 例如,在创建一个名为`tb_operator`的用户信息表...
在Oracle快速学习手册中,主要涵盖了SQL和PL/SQL的基础语法,包括创建和操作表、序列、视图,以及数据的插入、更新和删除等基本操作。 一、CREATE TABLE语句 CREATE TABLE语句用于在数据库中创建新的表,这是数据库...
Oracle数据库系统是全球广泛使用的大型关系型数据库管理系统之一,由美国甲骨文公司开发。它在企业级数据存储、管理和处理方面...通过深入学习这些概念,用户能够更有效地设计和管理Oracle数据库,提升数据处理效率。
oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...