`
shawnccx
  • 浏览: 165864 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Oracle学习:Sequence相关

阅读更多
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;
分享到:
评论

相关推荐

    浅谈MyBatis-Plus学习之Oracle的主键Sequence设置的方法

    主要介绍了浅谈MyBatis-Plus学习之Oracle的主键Sequence设置的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Oracle 10g 学习笔记

    │ Oracle学习笔记.pdf │ Oracle学习笔记.wps │ 安装Oracle后myEclipse不能正常使用.txt │ 手工配置listener.ora【避免出现ORA-12514错误】.txt │ 贴子树状态存储结构.jpg │ 贴子树状态存储结构.sql │ ├─01...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...

    sql plsql 函数学习 Oracle 快速入门

    sql plsql 函数学习 Oracle 快速入门 有关表的操作 运算符 常用 ORACLE 函数(日期函数、字符函数、数字函数、转换函数、分组函数、其他函数……) 临时表 join SEQUENCE 同义词 等等

    Oracle10g学习笔记整理

    Oracle10g学习笔记整理:登录oracle、常用命令、SQL语言包含4个部分、创建表空间、创建/修改/删除用户、权限与角色的操作、建表语句、表的修改、约束、DML(查询SELECT、插入INSERT、修改UPDATE和删除DELETE数据)、...

    Oracle基本语法

    作为初学者,整理学习文档是个好习惯,这篇小记是关于oracle权限操作,方案,序列,同义词,序列的基本语法

    Oracle学习笔记(四)

    create user user_1 indentified by pwd_1 alter user user_1 identified by pwd_2 2、给用户授予权限 grant privilege[,privilege] to user [,user|role,public…] 一些系统权限: create session/table/sequence/...

    JPA学习笔记-EJB-03JPA主键生成策略总结

    总结一下关于JPA的主键生成策略,JPA是用@GeneratedValue标记来注释的。一般的我把主键生成分成两大类。第一个就是简单的单字段主键类型,一个就是复杂的复合主键...4. Sequence:像Oracle支持Sequence的生成主键策略

    全面学习Mybatis插件之Mybatis-Plus_Java框架视频教程

    n Oracle 主键Sequence n 通用枚举n ActiveRecord n 逻辑删除 l 插件 n 执行分析插件 n 性能分析插件 n 乐观锁插件 主讲内容 章节一:快速入门 1. Mybatis-Plus简介 2. 快速入门 3. 通用CRUD 4. 配置 5. 条件构造器...

    matlab导入excel代码-utl_sorting_using_a_mixed_order_collating_sequence:使用混合

    join合并大数据分析宏oracle teradata mysql sas社区stackoverflow statistics人工智慧AI Python R Java Javascript WPS Matlab SPSS Scala Perl CC#Excel MS Access JSON图形映射NLP自然语言处理机器学习igraph ...

    Hibernate笔记 马士兵

    第1课 课程内容 6 第2课 Hibernate UML图 6...4、为Oracle指定定义的Sequence 22 5、TABLE - 使用表保存id值 23 三、 联合主键 24 1、xml方式 24 2、annotation方式 27 第14课 Hibernate核心开发接口(重点) 29 ........

    2009达内SQL学习笔记

    可以使用AND或OR、NOT等连接相关的条件 计算次序可以通过圆括号()来明确地分组。不要过分依赖默认计算次序,使用圆括号()没有坏处,它能消除二义性。 and:条件与 如 SELECT prod_id,prod_price,prod_name FROM...

    最新_尚硅谷_mybatisplus_全套视频教程

    本套教程基于MyBatis-Plus新2.3版本,详细讲授:集成Mybatis-Plus、通用CRUD、EntityWrapper条件构造器、ActiveRecord 等基本操作,更有代码生成器、插件扩展、自定义全局操作、公共字段填充、Oracle主键Sequence处理...

    StrutsNews

    3.程序运行环境为MYECLIPSE 5.0 + TOMACT 5.5 + ORACLE 9i 4.配置说明:将lib目录下的commons-pool-1.2.jar,commons-dbcp-1.2.jar,ojdbc14.jar复制到TOMACT目录下的COMMON下的LIB目录中。 5.需要修改...

    RMAN测试演练即讲解

    RMAN学习测试整理1 20121219 by Apollo 一、 Oracle数据库的备份分为物理备份和逻辑备份。今天测试整理下物理备份Rman,也就是oracle的恢复管理器(Recovery Manager)。 毕竟逻辑备份是不能实现时间点恢复的,所以...

    通俗易懂的MyBatisPlus教程(含配套资料)

    本套教程基于MyBatisPlus新2.3版本,详细讲授:集成MyBatisPlus、通用CRUD、EntityWrapper条件构造器、ActiveRecord 等基本操作,更有代码生成器、插件扩展、自定义全局操作、公共字段填充、Oracle主键Sequence处理、...

    Java学习笔记-个人整理的

    {10.2}其他Java相关}{146}{section.10.2} {11}项目}{148}{chapter.11} {11.1}ELTS}{148}{section.11.1} {12}Oracle数据库}{151}{chapter.12} {12.1}术语}{151}{section.12.1} {12.2}登录数据库}{151}{section....

    支持多数据库的ORM框架ef-orm.zip

    2、DDL操作、建表、删表、trunacte,Sequence创建和TABLE模拟Sequence等,都做了支持。 3、对SQL语法操作和函数的改写与支持。其他特性轻量 该框架对应用环境、连接池、 是否为J2EE应用等没有特殊要求。可以和EJB...

    gcWGAN:指导性条件性Wasserstein GAN用于De Novo蛋白设计

    DeNovoFoldDesign 动机:面对快速积累的蛋白质序列和结构... gcWGAN通过从当前的序列结构数据中学习,探索了未知的序列空间来设计蛋白质。 通过生成种子设计或定制序列空间,超快速数据驱动模型可以成为原理驱动设计

Global site tag (gtag.js) - Google Analytics