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...