zoukankan      html  css  js  c++  java
  • Oracle的序列

    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;   

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

  • 相关阅读:
    openSUSE字体美化
    [转摘]关于创建oracle dblink 过程的几点心得
    IList及泛型集合类转换DataTable
    C# 编码规范和编程好习惯
    随机数和随机字符串
    ThrowActivity 光阴的故事
    数据库的数据 转化为XML 在页面上浏览 光阴的故事
    EventHandlingScopeActivity 光阴的故事
    workflow 角色的使用关键 光阴的故事
    ConditionedActivityGroup 光阴的故事
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5155920.html
Copyright © 2011-2022 走看看