ORACLE SEQUENCE 場景簡單示例

2021-08-25 10:40:20 字數 2001 閱讀 2823

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_***

(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_***

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_***

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_*** 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_*** order by id

學以致用,簡單才好。希望對大家有用。

原創 oracle sequence簡介

sequence簡介 2013 12 26 一 概述 sequence是序列號的意思,每次取的時候它會自動增加。sequence與表沒有從屬關係,與表一樣屬於使用者。二 主要內容 1 create sequence語法 首先使用者要有create sequence或者create any seque...

Oracle Sequence簡單介紹

oracle中提供了sequence物件,由系統提供自增長的序列號,通常用於生成資料庫資料記錄的自增長主鍵或序號的地方.下面就主要介紹一下關於sequence物件的生成,修改,刪除等常用的操作 1.生成 sequence 首先使用者要有create sequence或者create any sequ...

ORACLE SEQUENCE的簡單介紹

在oracle中sequence就是所謂的序列號,每次取的時候它會自動增加,一般用在需要按序列號排序的地方。1 create sequence 你首先要有create sequence或者create any sequence許可權,create sequence emp sequence incr...