`
DataBird
  • 浏览: 71735 次
  • 性别: Icon_minigender_1
  • 来自: 湖南长沙
社区版块
存档分类
最新评论

ORACLE SEQUENCE 场景简单示例

阅读更多
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 的详细介绍及应用场景,希望能帮助开发者更好地理解和使用 Oracle 数据库中的这一强大工具。

    oracle 主键自增 sequence

    下面是一个创建 `Sequence` 的示例: ```sql CREATE SEQUENCE emp_sequence INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1开始计数 NOMAXVALUE -- 不设置最大值 NOCYCLE -- 一直累加,不循环 NOCACHE -- ...

    oracle 存储过程使用 sequence

    在提供的压缩包文件`07_调整级别示例过程(业务库_p_scegetuserinfor).orasql`中,可能包含了关于如何在实际业务场景下调整Sequence或使用Sequence的示例过程。这个过程可能涉及到更复杂的业务逻辑,比如根据不同的...

    oracle自动增长列

    通过创建一个序列(SEQUENCE),可以方便地为表中的某列自动生成唯一的值,这对于主键或者需要唯一标识符的场景非常有用。 #### 1. SEQUENCE概述 `SEQUENCE`是Oracle数据库提供的一个对象类型,它可以用来生成一...

    详解ORACLE SEQUENCE用法

    总结,Oracle Sequence是生成唯一序列号的重要工具,通过灵活地配置和使用,可以满足各种业务场景下的自增需求。了解和掌握Sequence的创建、修改、使用及与其他组件(如触发器)的集成,对于数据库设计和管理至关...

    Oracle创建自增字段--ORACLE SEQUENCE的简单使用介绍

    在Oracle数据库中,序列(SEQUENCE)是一种特殊的数据类型,用于生成唯一的整数序列,常用于自增字段,比如主键。序列号每次被获取时都会自动递增,确保了数据的唯一性和有序性。本篇文章将详细介绍Oracle如何创建、...

    sqlserver实现oracle的sequence方法

    总之,SQL Server中实现Oracle Sequence的方法多种多样,可以根据具体的应用场景和性能要求选择合适的方法。设计良好的序列生成方案是确保数据库数据完整性的重要一环,尤其是在需要唯一标识符的情况下。

    sequence等同于序列号

    ### Oracle数据库中的Sequence机制详解 #### 一、概述 在Oracle数据库中,`sequence`机制是一种自动生成唯一数值序列的方法,常用于为主键字段提供连续的整数值。它类似于其他数据库系统中的自动增长字段,但在...

    sample_schema_scripts Oracle 数据库 示例方案脚本(含结构+数据脚本)

    在本压缩包"sample_schema_scripts"中,包含了一系列用于创建Oracle示例方案的脚本,这些脚本分为结构脚本和数据脚本,旨在帮助那些在安装Oracle时未选择"示例方案"的用户能够快速搭建并体验示例数据。 结构脚本...

    oracle中如何实现ID自增

    这种方法既简单又高效,适用于多种应用场景。 ### Oracle Sequence 的详细介绍 #### 1. 创建序列(Create Sequence) 在创建序列时,除了上面提到的基本选项外,还有一些其他选项可以帮助更好地管理序列。 **...

    Oracle与MYSQL的几点区别

    在数据库管理系统领域,Oracle与MySQL因其各自独特的优势被广泛应用于不同的业务场景之中。本文将从几个具体的技术角度出发,探讨这两款数据库之间的差异。 #### 1. 分组查询(Group By)及聚合函数的使用 - **...

    ORACLE实现字段自增示例说明

    在Oracle数据库中,实现字段自增通常涉及到序列(Sequence)和触发器(Trigger)的使用。下面我们将详细探讨这两种机制以及如何将它们结合以达到自动填充字段的目的。 首先,序列是Oracle提供的一种特殊类型的...

    oracle里建一个自增字段示例

    ### Oracle里建一个自增字段示例 在Oracle数据库中,自增字段通常通过序列(Sequence)和触发器(Trigger)来实现。本篇文章将详细解释如何创建一个自增字段,并通过具体的步骤和代码示例来进行说明。 #### 序列...

    Oracle数据库操作序列的一些常用命令

    序列常被用于自动生成主键或唯一标识符等场景。本文将详细介绍如何在Oracle数据库中进行序列的基本操作,包括创建、查询当前值与下一个值、以及删除序列等内容。 #### 一、创建序列(Create Sequence) 创建序列是...

    oracle 不用新建序列 重置序列(从1开始增长)

    在Oracle中,通常的做法是创建一个新的序列,但这可能会带来额外的管理工作,尤其是在频繁需要重置序列的场景下。 本文将详细介绍如何在不新建序列的情况下,实现Oracle序列的重置,让其从1开始增长。这种方法通过...

    Oracle自增序列和触发器生成工具.zip

    以下是一个简单的触发器示例,用于在`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...

    sqlserver中创建类似oracle序列的存储过程

    ### SQL Server 中创建类似 Oracle 序列的存储过程 #### 背景介绍 在数据库管理系统(DBMS)中,序列是一种自增的数据结构,常用于自动产生唯一标识符(如ID...这种方法虽然简单,但在许多场景下都是有效的解决方案。

    Oracle使用序列创建自增字段

    Oracle 数据库通过序列(Sequence)这一特性支持自增字段的实现。本文将详细介绍如何利用 Oracle 的序列功能来创建自增字段,并探讨其相关的配置选项及应用场景。 ### 创建序列 (Create Sequence) #### 基本语法与...

    oracle自增序列

    本文将详细介绍如何在Oracle数据库中创建自增序列,并深入探讨其相关属性和应用场景。 #### 一、什么是Oracle自增序列? Oracle自增序列是一种特殊类型的序列,它可以按照设定的规则自动生成一系列连续的数字。...

    oracle-use.rar_Oracle drop use_oracle

    如果表中的某个字段是`ID`并且设置为自增(通常使用`IDENTITY`或`SEQUENCE`实现),那么在插入时,这个字段的值会自动递增,无需手动输入。 "选出字段是否包含字母"涉及字符串函数的使用,例如`REGEXP_LIKE`可以...

Global site tag (gtag.js) - Google Analytics