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...