`
qimo601
  • 浏览: 3415913 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Oracle中的sequence对象

阅读更多

Oracle中提供了sequence对象,由系统提供自增长的序列号,通常用于生成数据库数据记录的自增长主键或序号的地方.下面就主要介绍一下关于sequence对象的生成,修改,删除等常用的操作:

1. 生成 Sequence
首先用户要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限.然后使用下面命令生成sequence对象:
CREATE   SEQUENCE emp_sequence
INCREMENT   BY    1     --   每次加几个  
START   WITH    1      --   从1开始计数  
NOMAXVALUE           --   不设置最大值  
NOCYCLE              --   一直累加,不循环  
CACHE   10 ;   [说明]
如果指定CACHE值,ORACLE就可以预先在内存里面放置一些sequence,这样存取的快些。cache里面的取完后,oracle自动再取一组到cache。 使用cache或许会跳号, 比如数据库突然不正常down掉(shutdown abort),cache中的sequence就会丢失. 所以可以在create sequence的时候用nocache防止这种情况。

一旦定义了emp_sequence,你就可以用CURRVAL,NEXTVAL 来使用 sequence:
sequence.CURRVAL     -- 返回 sequence的当前值
sequence.NEXTVAL     -- 增加sequence的值,然后返回 sequence 值 [说明]
第一次NEXTVAL返回的是初始值;随后的NEXTVAL会自动增加你定义的INCREMENT BY值,然后返回增加后的值。CURRVAL 总是返回当前SEQUENCE的值,但是在第一次NEXTVAL初始化之后才能使用CURRVAL,否则会出错。一次NEXTVAL会增加一次 SEQUENCE的值,所以如果你在同一个语句里面使用多个NEXTVAL,其值就是不一样的。

2.修改 Sequence
用户或者是该sequence的owner,或者有ALTER ANY SEQUENCE 权限才能改动sequence. 可以alter除start至以外的所有sequence参数.
如果想要改变start值,必须 drop sequence 再 re-create.
命令格式如下:
ALTER   SEQUENCE emp_sequence
  INCREMENT   BY    10  
  MAXVALUE   10000  
  CYCLE    --   到10000后从头开始  
  NOCACHE ;

3.   删除 Sequence
DROP   SEQUENCE order_seq;

CREATE SEQUENCE seq_alert
INCREMENT BY   1
START WITH   1
MAXVALUE   9999999999;

CREATE TRIGGER trg_alert
before insert on JIAXING.t_info_alert
for each row
begin
    select seq_alert.NEXTVAL into :NEW.P_ID from dual;
End trg_alert;

分享到:
评论

相关推荐

    分享ORACLE SEQUENCE跳号总结

    在ORACLE数据库中,序列(SEQUENCE)是使用非常频繁的一个数据库对象,但是有时候会遇到序列(SEQUECNE)跳号(skip sequence numbers)的情形,那么在哪些情形下会遇到跳号呢?  事务回滚引起的跳号  不管序列有...

    oracle创建各种对象

    oracle创建对象:procedure,index,view,function,trigger,sequence,package,type,table,cursor,job

    sqlserver实现oracle的sequence方法

    如果在ORACLE里面用惯了Sequence的兄弟们,要在SqlServer里实现Sequence,就会发现没有现成的Sequence对象可以Create了。那应该怎么办呢?下面我们在SQLServer中实现Sequence

    通过实例了解Oracle序列Sequence使用方法

    序列(Sequence)是用来生成连续的整数数据的对象。序列常常用来作为主键中增长列, 序列中的可以升序生成,也可以降序生成。创建序列的语法是: 语法结构:创建序列 CREATE SEQUENCE sequence_name [START WITH ...

    【动力节点】Oracle从入门到精通视频教程_数据库实战精讲

    数据库实战精讲本套Java视频中讲解了Oracle数据库基础、搭建Oracle数据库环境、SQL*Plus命令行工具的使用、标准SQL、Oracle数据核心-表空间、Oracle数据库常用对象,数据库性能优化,数据的导出与导入,索引,视图,...

    oracle基础教程

    1.3.7 序列(Sequence) 19 1.3.8 数据库链(Database Link) 20 第2章 管理ORACLE数据库 21 2.1 基本概念 21 2.1.1 数据字典 21 2.1.2 事务管理 23 2.1.3 数据库管理员(DBA) 24 2.1.4 ORACLE的四种状态 25 2.2 SQL*...

    SEQUECE唯一健值的使用

    Oracle中提供了sequence对象,由系统提供自增长的序列号,通常用于生成数据库数据记录的自增长主键或序号的地方.下面就主要介绍一下关于sequence对象的生成,修改,删除等常用的操作:

    Oracle系统权限说明

    Oracle数据库的系统和对象权限:: alter any cluster 修改任意簇的权限  alter any index 修改任意索引的权限  alter any role 修改任意角色的权限  alter any sequence 修改任意序列的权限

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

    ORACLE用户是学习ORACLE数据库中的基础知识,下面就介绍下类系统常用的默认ORACLE用户: 1. sys用户:超级用户,完全是个SYSDBA(管理数据库的人)。拥有dba,sysdba,sysoper等角色或权限。是oracle权限最高的用户,...

    Oracle10g自定义聚合函数(字符串拼接)

    * 可自定义指定排序字段sequence,对于数字或日期类型的字段,先转为字符串,比如to_char(line, 'FM000') * 由于聚合函数只支持一个参数,这里使用对象类型实现传入多个参数 * Oracle11g Release2版本引入了...

    Oracle数据库、SQL

    二十、 数据库对象:序列号sequence 44 20.1什么是sequence 44 20.2创建sequence 44 20.3缺省是nocycle(不循环) 44 20.4缺省cache 20 44 二十一、 其他注意事项 46 21.1删除表,删除列,删除列中的值 46 21.2多对...

    最全的oracle常用命令大全.txt

    ORACLE常用命令 一、ORACLE的启动和关闭 1、在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>startup ...

    oracle权限角色

     analyze 使用analyze命令分析数据库中任意的表、索引和簇  audit any 为任意的数据库对象设置审计选项  audit system 答应系统操作审计  backup any table 备份任意表的权限  become user 切换用户状态的...

    Oracle8i_9i数据库基础

    §17.7.2 包中无效对象的查询和编译 294 §17.7.3 包源代码的导出 296 第十八章 触发器 297 §18.1 触发器类型 297 §18.1.1 DML触发器 297 §18.1.2 替代触发器 298 §18.1.3 系统触发器 298 §18.2 创建触发器 298...

    jfsky.com-Oracle数据库基础知识

    1.3.7 序列(Sequence) 19 1.3.8 数据库链(Database Link) 20 第2章 管理ORACLE数据库 21 2.1 基本概念 21 2.1.1 数据字典 21 2.1.2 事务管理 23 2.1.3 数据库管理员(DBA) 24 2.1.4 ORACLE的四种状态 25 2.2 SQL*...

    ORACLE数据库基础知识-华为维护资料

    1.3.6 序列(Sequence) 17 1.3.7 数据库链(Database Link) 17 第2章 管理ORACLE数据库 19 2.1 启动与关闭 19 2.1.1 权限 19 2.1.2 ORACLE的四中状态 20 2.1.3 启动数据库 20 2.1.4 关闭数据库 22 2.2 应用开发...

    Oracle_Data_Integrator应用指南

    9.2. 中英文名词 62 9.3. 对象加密 63 9.4. Agent负载均衡 63 9.5. Jython 63 9.6. Substitution Methods 64 9.7. 常用代码块 64 9.8. 命令行工具 64 9.9. 升级 65 9.10. 用户权限 65 9.11. 安装Metadata Navigator ...

    Oracle数据库设计策略及规范.docx

    索引对新增,删除,更新的性能影响比较大,对相关的表的索引使用要权衡 为表和索引建立不同的表空间,禁止在系统表空间中放入非核心oracle系统成分的对象, 确保数据表空间和索引表空间位于不同的磁盘磁盘驱动器上...

    oracle中的ID号实现自增长的方法

    序列(Sequence)是一种可以被多个用户使用的用于产生一系列唯一数字的数据库对象。序列定义存储在数据字典中,通过提供唯一数值的顺序表来简化程序设计工作,可以使用序列自动产生主键的键值。当一个序列第一次被...

Global site tag (gtag.js) - Google Analytics