學習Oracle中Sequences的使用

2021-05-14 13:11:26 字數 904 閱讀 7397

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,其值就是不一樣的。

在ORACLE中建立自增字段,sequence

通過建立序列來實現 oracle sequence的簡單介紹 在oracle中sequence就是所謂的序列號,每次取的時候它會自動增加,一般用在需要按序列號排序的地方。1 create sequence 你首先要有create sequence或者create any sequence許可權,cr...

Oracle自動增長序列介紹 sequence

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

oracle 順序號生成函式。仿Sequence

問題提出自專案中的老 乙個bill表,儲存所有的表單資訊,比如 員工入職單,離職單等等。別噴,我知道要分多個表。但領導的意願你是沒辦法違背的 表單的單據號是以四個字母 年月日 數字順序號來表示。每次取新單據號時要從bill表裡 按生成規則 查詢出最大的那個單據號,再拆分出來,再給順序號加 組合好後再...