频道栏目
首页 > 资讯 > Oracle > 正文

Oracle的序列

15-03-13        来源:[db:作者]  
收藏   我要投稿

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;   

若要修改起始值,则只能删除序列然后重新创建。

相关TAG标签
上一篇:OracleXE安装详解
下一篇:恶意软件CryptoWall 通过Windows help文件(.chm)感染用户电脑
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站