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是一种用于自动产生数值序列的对象。它可以生成连续的整数或者非连续的整数序列,并且可以根据需求进行递增或递减。Sequence常用于为表中的某列自动生成唯一的主键值或者作为流水号使用。...
**Oracle Sequence** 是一种数据库对象,用于生成连续的整数序列。它可以被用来作为表中某一列的自动增长字段,例如主键ID。Sequence的主要优点是简单易用且性能高效。 #### 二、Sequence失效的原因 1. **数据迁移...
通过以上步骤,开发者可以在JDeveloper中有效地利用Oracle的sequence和trigger特性,实现Web应用中的数据管理和逻辑控制。这不仅可以提高开发效率,也有助于保持数据的一致性和完整性。在实际项目中,应根据具体需求...
Oracle SEQUENCE 是一种特殊的数据库对象,用于生成一系列唯一的数值,通常用于主键或其他需要唯一标识的字段。下面将详细介绍 Oracle 创建自增字段方法-ORACLE SEQUENCE 的简单介绍。 1. 创建 SEQUENCE 要创建 ...
Oracle数据库的核心组成部分之一就是模式对象,这些对象是数据库中用户定义的对象,包括表、视图、索引等。模式对象属于数据库中的一个特定模式(schema),每个模式对应一个数据库用户。以下是Oracle数据库中几种常见...
在Oracle中,序列(Sequence)是一个非常重要的概念,它主要用于生成唯一的整数序列,常常被用来作为主键值,特别是在插入新记录时自动增加。在本篇文章中,我们将深入探讨Oracle序列的创建、使用以及其在实际应用中...
SEQUENCE 在 Oracle 中是一个对象,用于生成一系列连续的整数。这些数字可以按照定义的方式递增或递减,并且可以设置是否循环以及缓存等属性。 #### 二、创建 Sequence (Create Sequence) 为了在 Oracle 中使用 ...
在ORACLE数据库中,序列(SEQUENCE)是使用非常频繁的一个数据库对象,但是有时候会遇到序列(SEQUECNE)跳号(skip sequence numbers)的情形,那么在哪些情形下会遇到跳号呢? 事务回滚引起的跳号 不管序列有...
在 Oracle 数据库中,`Sequence` 是一种用于生成一系列唯一数值的对象。这些数值可以按照特定的规则递增或递减,并且可以设定是否循环以及是否缓存等特性。`Sequence` 常用于自动生成主键值,特别是在没有使用 `AUTO...
Sequence在Oracle中是一个预定义的对象,可以生成唯一的、连续的整数序列。创建Sequence时,你可以指定初始值、增长步长、是否循环等属性。例如,创建一个名为`USER_SEQ`的Sequence: ```sql CREATE SEQUENCE USER_...
本篇文章将围绕"让CoolSQL支持Oracle Sequence的GeneratedKey"这一主题展开,探讨如何在开发过程中利用Oracle的Sequence特性并将其与CoolSQL工具相结合,以实现更高效的数据操作。 首先,Oracle Sequence是一种用于...
在Oracle数据库管理系统中,删除用户下的对象是一项常见的管理任务,这通常涉及到清理不再需要的数据空间,或者在重新分配用户权限时进行系统维护。本篇将详细介绍如何在Oracle中安全有效地删除用户下的所有对象。 ...
在Oracle数据库系统中,创建各种对象是数据库管理和开发的重要组成部分。这些对象构成了Oracle数据库的核心功能,使得数据存储、处理和管理变得高效且灵活。以下将详细介绍标题和描述中提到的各种对象及其创建方法。...
然而,SQL Server并不直接支持Sequence对象。在SQL Server中,开发者经常使用Identity列来达到类似的效果,Identity列会在每次插入新行时自动递增一个值。但当需要更复杂的序列生成规则,如特定格式的序列号(如...
序列(SEQUENCE)是Oracle中用于生成一系列唯一整数值的对象,通常用在需要主键的地方。序列的管理包括创建(CREATE SEQUENCE)、修改(ALTER SEQUENCE)和删除(DROP SEQUENCE)等操作。 同义词(SYNONYM)是表、...
为了实现Sequence,我们需要在Oracle数据库中创建一个序列对象,例如: ```sql CREATE SEQUENCE seq_user START WITH 1; ``` 这里创建了一个名为`seq_user`的Sequence,从1开始递增。 2. **配置MyBatis-Plus*...
在Oracle UML对象建模中,我们通常会使用以下几种UML图: 1. 类图(Class Diagram):显示类、接口及其关系,如继承、实现、关联、依赖等。在Oracle数据库设计中,类图可以帮助我们规划表结构和关系。 2. 用例图...
3. **序列图(Sequence Diagram)**和协作图(Collaboration Diagram)**:这两种图描述了对象之间的动态交互,特别是在时间序列中的消息传递。在Oracle数据库设计中,这些图可以用来展示数据处理过程和事务流。 4. **...
在Oracle数据库中,实现自动增长列的功能主要依赖于`SEQUENCE`对象。通过创建一个序列(SEQUENCE),可以方便地为表中的某列自动生成唯一的值,这对于主键或者需要唯一标识符的场景非常有用。 #### 1. SEQUENCE概述...