Oracle的序列

序列介绍

序列是Oracle提供的用于产生一系列唯一数字的数据库对象。

使用序列能够实现自己主动产生主键值。序列也能够在很多用户并发环境中使用。为所实用户生成不反复的顺序数字,并且不须要不论什么额外的I/O开销。

与视图一样。序列并不占用实际的存储空间,仅仅是在数据字典中保存它的定义信息。用户要在自己的模式中创建序列。必须具有CREATE SEQUECNCE系统权限,假设要在其它模式中创建序列,则必须具有CREATE ANY SEQUENCE系统权限。

创建序列的语法例如以下:

CREATE SEQUENCE sequence_name
[START WITH start]
[INCREMENT BY increment]
[MINVALUE minvalue | NOMINVALUE]
[MAXVALUE maxvalue | NOMAXVALUE]
[CACHE cache | NOCACHE]
[CYCLE | NOCYCLE]
[ORDER | NOORDER]

创建序列

首先。以SYSDBA角色登录。赋予用户创建序列权限:

  GRANT CREATE ANY SEQUENCE TO siege

然后创建序列:

CREATE SEQUENCE stu_seq
START WITH 1
INCREMENT BY 1
NOMAXVALUE
NOCYCLE;

管理序列

使用序列,须要使用序列的两个伪劣NEXTVAL和CURRVAL。改动序列使用ALTER SEQUENCE语句,除了序列的起始值之外。能够又一次定义序列的不论什么子句和參数进行改动。

假设要改动序列的起始值,则必须先删除序列,然后再又一次创建该序列。对序列进行改动后,在缓存中的序列值将所有丢失,能够通过数据字典USER_SEQUENCE获取序列的信息。

查看序列信息

SELECT * FROM user_sequences WHERE sequence_name='STU_SEQ'

结果例如以下:

SEQUENCE_NAME   MIN_VALUE   MAX_VALUE   INCREMENT_BY CYCLE_FLAG ORDER_FLAG    CACHE_SIZE    LAST_NUMBER
STU_SEQ 1 1E28 1 N N 20 1

改动序列

ALTER SEQUENCE stu_seq
MAXVALUE 9999
CACHE 9
CYCLE
ORDER;

若要改动起始值,则仅仅能删除序列然后又一次创建。

Oracle的序列的更多相关文章

  1. MySQL实现类似Oracle的序列

    MySQL实现类似Oracle的序列 2013-10-22 10:33:35     我来说两句      作者:走过的足迹 收藏    我要投稿 MySQL实现类似Oracle的序列   Oracl ...

  2. oracle导出序列的几种办法

    oracle导出序列的几种办法 注:本文来源于<oracle导出序列的几种办法> 方法一: select 'create sequence ' ||sequence_name|| ' mi ...

  3. Oracle中序列的操作以及使用前对序列的初始化

    Oracle中序列的操作以及使用前对序列的初始化   一 创建序列 create sequence myseq start with 1 increment by 1 nomaxvalue minva ...

  4. Oracle创建序列,Oracle创建序列语法

    -- Oracle创建序列 Create sequence CREATE SEQUENCE SEQ_SINGER -- 序列名称  START WITH 2 -- 开始数字  MAXVALUE 999 ...

  5. oracle 重置序列从指定数字开始的方法详解

    原文 oracle 重置序列从指定数字开始的方法详解 重置oracle序列从指定数字开始 declare n ); v_startnum ):;--从多少开始 v_step ):;--步进 tsql ...

  6. 【转】Oracle重置序列(不删除重建方式)

    Oracle中一般将自增sequence重置为初始1时,都是删除再重建,这种方式有很多弊端,依赖它的函数和存储过程将失效,需要重新编译.不过还有种巧妙的方式,不用删除,利用步长参数,先查出sequen ...

  7. Oracle(创建序列)

    概念: 所谓序列,在oracle中就是一个对象,这个对象用来提供一个有序的数据列,这个有序的数据列的值都不重复. 1.序列可以自动生成唯一值 2.是一个可以被共享的对象 3.典型的用来生成主键值的一个 ...

  8. oracle修改序列

      Oracle 序列(Sequence)主要用于生成流水号,在应用中经常会用到,特别是作为ID值,拿来做表主键使用较多. 但是,有时需要修改序列初始值(START WITH)时,有同仁使用这个语句来 ...

  9. [oracle] ORA-08002:序列XXXXXXX.CURRVAL尚未在此进程中定义

    出现 ORA-08002: 序列XXXXXXX.CURRVAL 尚未在此进程中定义. 导致原因:因为是首次查询序列的当前值,内存中之前并没有缓存序列的任何值,所以需要先查询 一下序列的下一个值(此时, ...

随机推荐

  1. AnyEvent::HTTP 介绍

    AnyEvent::HTTP - simple but non-blocking HTTP/HTTPS client 一个简单的非堵塞的 HTTP/HTTPS 客户端: use AnyEvent::H ...

  2. ios7状态栏属性的设置

    /* 状态栏的管理: 1> iOS7之前:UIApplication进行管理 2> iOS7开始:交给对应的控制器去管理 */ // 设置状态栏的样式 - (UIStatusBarStyl ...

  3. Uva 167 The Sultan's Successors(dfs)

    题目链接:Uva 167 思路分析:八皇后问题,采用回溯法解决问题. 代码如下: #include <iostream> #include <string.h> using n ...

  4. JSON XML IO数据操作

    一.XML解析 通过继承org.xml.sax.helpers.DefaultHandler类,覆写characters(),startDocument(),startElement(),endEle ...

  5. Handler总结

    一.整体工程图 二.activity_handler.xml <?xml version="1.0" encoding="utf-8"?> < ...

  6. db2 xml 转 table【XQuery系列】

    版本号:DB2 Version 9.1 1.创建測试表,初始化数据 create table emp (doc XML);   INSERT INTO EMP VALUES ('<dept bl ...

  7. [HDU 4842]--过河(dp+状态压缩)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4842 过河 Time Limit: 3000/1000 MS (Java/Others)    Mem ...

  8. Linux/Mac OS 下 批量提交 新增文件到SVN 服务器

    命令行下操作svn没有使用界面形式的TortoiseSVN直观,但是不管怎样,命令行下操作svn还是有它的有点,如果你碰到一次需要svn add许多个文件怎么办?下面的命令可以帮助你解决这个问题 一次 ...

  9. 基于visual Studio2013解决C语言竞赛题之0522和为素

     题目

  10. 一步一步重写 CodeIgniter 框架 (11) —— 使用 CodeIgniter 函数库

    在完成了CI框架的类库扩展后,很自然我们就会想到函数库的扩展.函数库的扩展在 CI 中称为 helper 函数与类有不同的地方,它不能继承,只能覆盖或者添加新的函数,或者直接完全新定义的一组函数. 由 ...