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表裡 按生成規則 查詢出最大的那個單據號,再拆分出來,再給順序號加 組合好後再...