1、create sequence
首先要有create sequence或者create any sequence許可權。
createsequence seqtest
increment by1
--每次加幾個
start with1--
從1開始計數
nomaxvalue --
不設定最大值
nocycle --
一直累加,不迴圈
cache 10; --
設定快取cache個序列,如果系統down掉了或者其它情況將會導致序列不連續,也可以設定為---------nocache
得到值語句如下:
如得到上邊建立sequence值的語句為:
selectseqtest.currval fromdual
如在插入語句中
insertinto表名(id,name)values(seqtest.nextval,'sequence 插入測試');
注:- 第一次nextval返回的是初始值;隨後的nextval會自動增加你定義的increment by值,然後返回增加後的值。
currval 總是返回當前sequence的值,但是在第一次nextval初始化之後才能使用currval,否則會出錯。
一次nextval會增加一次 sequence的值,所以如果你在同乙個語句裡面使用多個nextval,其值就是不一樣的。
- 如果指定cache值,oracle就可以預先在記憶體裡面放置一些sequence,這樣訪問的快些。cache裡面的取完後,oracle自動再取一組
到cache。 使用cache或許會跳號, 比如資料庫突然不正常down掉(shutdown
abort),cache中的sequence就會丟失. 所以可以在create sequence的時候用nocache防止這種情況。
例:altersequence seqtest maxvalue 9999999;
另: sequence_cache_entries引數,設定能同時被cache的sequence數目。
4、drop sequence
5、乙個例子
createsequence seq_id
minvalue
1maxvalue
99999999
start
with
1increment by1
nocache
order
;建解髮器**為:
create
orreplace
trigger
tri_test_id
before
insert
on s_depart --
s_depart 是表名
foreach row
declare
nextid
number
;begin
if :new.departid is nullor :new.departid=
0then
--departid是列名
select seq_id.nextval --
seq_id正是剛才建立的
into
nextid
from
sys.dual;
:new.departid:
=nextid;
endif;
end tri_test_id;
注::new 代表 資料改變後的新值,相對應的有 :old 原值
:= 代表 賦值
原創 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...