Oracle中SEQUENCES的使用

2021-08-29 10:52:26 字數 2409 閱讀 6179

oracle中sequences的使用

oracle

提供了sequence物件,

由系統提供自增長的序列號

,通常用於生成資料庫資料記錄的自增長主鍵或序號的地方.

下面介紹一下關於

sequence

的生成,修改,

刪除等常用的操作:

1. 建立

sequence

使用如下命令新建

sequence(

使用者需要有

create sequence

或者create any sequence

許可權):

create  sequence test_sequence

increment  by   1

-- 

每次加的個資料

start  with   1

--  從1

開始計數

nomaxvalue

-- 

不設定最大值

nocycle

-- 

一直累加,不迴圈

cache  10 ;  [注意

] 如果設定了

cache

值,oracle

將在記憶體裡預先放置一些

sequence

,以使訪問速度更快。

cache

裡面的取完後,

oracle

自動再取一組到

cache

。但是,使用

cache

可能會跳號,

當遇到資料庫突然異常

down

掉(shutdown abort),cache

中的sequence

就會丟失

. 因此,推薦在

create sequence

的時候使用

nocache

選項。2.

使用sequence:

sequence.currval    --

返回sequence

的當前值

sequence.nextval    --

增加sequence

的值,然後返回

sequence 值[

注意]第一次nextval

返回的是初始值;

隨後的nextval

會自動增加你定義的

increment by

值,然後返回增加後的值。

currval

總是返回當前

sequence

的值,但是在第一次

nextval

初始化之後才能使用

currval

,否則會出錯。

一次nextval

會增加一次

sequence

的值,所以如果你在同乙個語句裡面使用多個

nextval

,其值就是不一樣的。

sequence

儲存在資料字典中

,儲存於

user_sequences

表last_number

為最終序列號,也就是

sequence

游標當前所在的位置。

//get sequence last_number

select last_number from user_sequences where sequence_name=test_seqname

// nextval

使游標指向下一位(增一或減一)

select seqname.nextval from user_sequences

得到下一位游標的值

3. 修改sequence

使用者必須擁有

alter any sequence

許可權才能修改

sequence.

可以alter

除start

至以外的所有

sequence引數.

如果想要改變

start

值,必須

drop sequence

再re-create.

命令格式如下:

alter  sequence test_sequence

increment  by   10 

maxvalue  10000 

cycle

-- 

到10000

後從頭開始

nocache ; 

4. 

刪除sequence

drop  sequence order_seq; 

引用自校長的部落格

Oracle 中的Sequence介紹

select empseq.currval from dual altersequence user.sequence name increment by n maxvalue n nomaxvalue minvalue n nominvalue 修改序列可以 修改未來序列值的增量。設定或撤消最小值...

Oracle中Sequence的使用

有用沒用轉乙個,省著用的時候總要查。oracle提供了sequence物件,由系統提供自增長的序列號,通常用於生成資料庫資料記錄的自增長主鍵或序號的地方.下面介紹一下關於sequence 的生成,修改,刪除等常用的操作 1.建立sequence 使用如下命令新建sequence 使用者需要有crea...

oracle中的序列 sequence

在oracle中sequence就是所謂的序列號,每次取的時候它會自動增加,一般用在需要按序列號排序的地方,保證不會重複 執行緒同步 1 create sequence 首先要有create sequence許可權,create sequence sequence increment by n 每次...