oracle實現自動增長列

2021-04-24 15:13:03 字數 867 閱讀 9156

2008-01-31 15:53

sequence

首先使用者要有create sequence或者create any sequence許可權.然後使用下面命令生成sequence物件:

create sequence emp_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防止這種情況。

一旦定義了emp_sequence,你就可以用currval,nextval 來使用 sequence:

sequence.currval    -- 返回 sequence的當前值

sequence.nextval    -- 增加sequence的值,然後返回 sequence 值 [說明]

第一次nextval返回的是初始值;隨後的nextval會自動增加你定義的increment by值,然後返回增加後的值。currval 總是返回當前sequence的值,但是在第一次nextval初始化之後才能使用currval,否則會出錯。一次nextval會增加一次 sequence的值,所以如果你在同乙個語句裡面使用多個nextval,其值就是不一樣的。

oracle中實現自動增長列

oracle中實現自動增長列不能夠像 sqlserver中在 表中直接加標示,而是要借助序列來實現。下面簡單介紹一下,oracle中實現自動增長列的乙個方法 步驟 1 建立乙個序列來實現自動增長。create sequence user sequence1 start with 1 初值 incre...

ORACLE的自動增長列

關於oracle自動增長列 sqlserver2000有自動增長 create sequence seq tab g increment by 1 start with 1 maxvalue 9999999 minvalue 1 建立序列 seq tab g.currval 指當前序列 seq ta...

Oracle利用序列實現自動增長列

在sql server以及mysql中都有相應的自動增長列型別,而oracle中則沒有此型別,那如果要實現自動增長列需要怎麼辦呢.我們可以利用序列來實現.插入資料時候,可以像sql以及mysql一樣,不用顯示指定需要自動增長的列的值.實現如下 create table sys roles id in...