ORACLE SEQUENCE 的简单使用示例
序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。
其主要的用途是生成表的主键值,可以在插入语句中 ...,对于让DB自动维护ID增长,需要结合触发器。
-- Create sequence 自己写的
create sequence CSUDF_SEQUENCE1
INCREMENT BY 1 --每次加几个
START WITH 1 --从1开始计数
NOMAXVALUE --不设置最大值
NOCYCLE --一直累加,不循环
CACHE 10 --预分配缓存大小为10
-- Create sequence 数据库翻译的
create sequence CSUDF_SEQUENCE1
minvalue 1
maxvalue 999999999999999999999999999
start with 11
increment by 1
cache 10;
两者有点差异,以后遇到问题再去研究。
SELECT CSUDF_SEQUENCE1.NEXTVAL FROM DUAL; --加一
SELECT CSUDF_SEQUENCE1.CURRVAL FROM DUAL; --目前值
试验一把
1.建表
create table CSUDF_XXX
(
ID NUMBER ,--这个不能用 LONG,报错
BSC VARCHAR2(20),
BTS VARCHAR2(20),
CELL VARCHAR2(20),
RECORD_TIME DATE not null,
BUSY_TCH_MEAN FLOAT
)
2.建触发器
create or replace trigger CSUDF_TRI_SEQ1
before insert on CSUDF_XXX
for each row
begin
select CSUDF_SEQUENCE.nextval into :new.id from dual;
end;
3.大量插入数据试验ID增加
这里的场景是收集20号到24号的9点到23点数据,每小时大约八千多条记录。
DECLARE
V_START DATE := TO_DATE('2010-09-20 09:00', 'YYYY-MM-DD HH24:MI');
V_END DATE := TO_DATE('2010-09-24 23:00', 'YYYY-MM-DD HH24:MI');
BEGIN
WHILE V_START <= V_END LOOP
IF TO_CHAR(V_START, 'HH24') BETWEEN 9 AND 23 THEN
INSERT INTO CSUDF_XXX
SELECT 0, BSC, BTS, CELL, RECORD_TIME, BUSY_TCH_MEAN
FROM GBP_MOT_CELL1_GSR9
WHERE RECORD_TIME = V_START;
COMMIT;
END IF;
V_START := V_START + 1 / 24;
END LOOP;
END;
/
SELECT RECORD_TIME, COUNT(1) FROM CSUDF_XXX GROUP BY RECORD_TIME
RECORD_TIME COUNT(1)
2010-9-20 9:00:00 8729
。。。
2010-9-20 23:00:00 8736
2010-9-21 9:00:00 8738
2010-9-21 10:00:00 8738
。。。
SELECT * FROM CSUDF_XXX ORDER BY ID
学以致用,简单才好。希望对大家有用。
分享到:
相关推荐
### ORACLE SEQUENCE 的详细介绍与应用 #### 一、概述 在数据库开发和管理中,自动编号是一...以上是关于 Oracle Sequence 的详细介绍及应用场景,希望能帮助开发者更好地理解和使用 Oracle 数据库中的这一强大工具。
下面是一个创建 `Sequence` 的示例: ```sql CREATE SEQUENCE emp_sequence INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1开始计数 NOMAXVALUE -- 不设置最大值 NOCYCLE -- 一直累加,不循环 NOCACHE -- ...
在提供的压缩包文件`07_调整级别示例过程(业务库_p_scegetuserinfor).orasql`中,可能包含了关于如何在实际业务场景下调整Sequence或使用Sequence的示例过程。这个过程可能涉及到更复杂的业务逻辑,比如根据不同的...
通过创建一个序列(SEQUENCE),可以方便地为表中的某列自动生成唯一的值,这对于主键或者需要唯一标识符的场景非常有用。 #### 1. SEQUENCE概述 `SEQUENCE`是Oracle数据库提供的一个对象类型,它可以用来生成一...
总结,Oracle Sequence是生成唯一序列号的重要工具,通过灵活地配置和使用,可以满足各种业务场景下的自增需求。了解和掌握Sequence的创建、修改、使用及与其他组件(如触发器)的集成,对于数据库设计和管理至关...
在Oracle数据库中,序列(SEQUENCE)是一种特殊的数据类型,用于生成唯一的整数序列,常用于自增字段,比如主键。序列号每次被获取时都会自动递增,确保了数据的唯一性和有序性。本篇文章将详细介绍Oracle如何创建、...
总之,SQL Server中实现Oracle Sequence的方法多种多样,可以根据具体的应用场景和性能要求选择合适的方法。设计良好的序列生成方案是确保数据库数据完整性的重要一环,尤其是在需要唯一标识符的情况下。
### Oracle数据库中的Sequence机制详解 #### 一、概述 在Oracle数据库中,`sequence`机制是一种自动生成唯一数值序列的方法,常用于为主键字段提供连续的整数值。它类似于其他数据库系统中的自动增长字段,但在...
在本压缩包"sample_schema_scripts"中,包含了一系列用于创建Oracle示例方案的脚本,这些脚本分为结构脚本和数据脚本,旨在帮助那些在安装Oracle时未选择"示例方案"的用户能够快速搭建并体验示例数据。 结构脚本...
这种方法既简单又高效,适用于多种应用场景。 ### Oracle Sequence 的详细介绍 #### 1. 创建序列(Create Sequence) 在创建序列时,除了上面提到的基本选项外,还有一些其他选项可以帮助更好地管理序列。 **...
在数据库管理系统领域,Oracle与MySQL因其各自独特的优势被广泛应用于不同的业务场景之中。本文将从几个具体的技术角度出发,探讨这两款数据库之间的差异。 #### 1. 分组查询(Group By)及聚合函数的使用 - **...
在Oracle数据库中,实现字段自增通常涉及到序列(Sequence)和触发器(Trigger)的使用。下面我们将详细探讨这两种机制以及如何将它们结合以达到自动填充字段的目的。 首先,序列是Oracle提供的一种特殊类型的...
### Oracle里建一个自增字段示例 在Oracle数据库中,自增字段通常通过序列(Sequence)和触发器(Trigger)来实现。本篇文章将详细解释如何创建一个自增字段,并通过具体的步骤和代码示例来进行说明。 #### 序列...
序列常被用于自动生成主键或唯一标识符等场景。本文将详细介绍如何在Oracle数据库中进行序列的基本操作,包括创建、查询当前值与下一个值、以及删除序列等内容。 #### 一、创建序列(Create Sequence) 创建序列是...
在Oracle中,通常的做法是创建一个新的序列,但这可能会带来额外的管理工作,尤其是在频繁需要重置序列的场景下。 本文将详细介绍如何在不新建序列的情况下,实现Oracle序列的重置,让其从1开始增长。这种方法通过...
以下是一个简单的触发器示例,用于在`MY_TABLE`表的`ID`字段上应用`MY_SEQ`序列: ```sql CREATE TRIGGER MY_TABLE_INSERT_TRG BEFORE INSERT ON MY_TABLE FOR EACH ROW BEGIN SELECT MY_SEQ.NEXTVAL INTO :NEW.ID...
### SQL Server 中创建类似 Oracle 序列的存储过程 #### 背景介绍 在数据库管理系统(DBMS)中,序列是一种自增的数据结构,常用于自动产生唯一标识符(如ID...这种方法虽然简单,但在许多场景下都是有效的解决方案。
Oracle 数据库通过序列(Sequence)这一特性支持自增字段的实现。本文将详细介绍如何利用 Oracle 的序列功能来创建自增字段,并探讨其相关的配置选项及应用场景。 ### 创建序列 (Create Sequence) #### 基本语法与...
本文将详细介绍如何在Oracle数据库中创建自增序列,并深入探讨其相关属性和应用场景。 #### 一、什么是Oracle自增序列? Oracle自增序列是一种特殊类型的序列,它可以按照设定的规则自动生成一系列连续的数字。...
如果表中的某个字段是`ID`并且设置为自增(通常使用`IDENTITY`或`SEQUENCE`实现),那么在插入时,这个字段的值会自动递增,无需手动输入。 "选出字段是否包含字母"涉及字符串函数的使用,例如`REGEXP_LIKE`可以...