熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

如何在Oracle中使用Sequence

2013-11-13 15:35:51  來源: Oracle 

  在SQL Server數據庫中可以自增字段但在Oracle數據庫中在建表的時候卻沒有這個選項在實際的應用中我們可以通過觸發器(trigger)或者序列(sequence)來實現

  創建sequence的語法

  

  create sequence Sequence_name increment by 表示從開始計值 start with 每次增長 nomaxvalue / maxvalue 有兩個可選值 要麼無最大值要麼指定最大值 minvalue / nominvalue 同maxvalue cycle 表示達到最大值後從頭開始也可以為nocycle cache 指定cache的值如果指定CACHE值oracle就可以預先在內 存裡面放置一些sequence這樣存取的快些cache裡面的取完後oracle 自動再取一組到cache使用cache或許會跳號 比如數據庫突然不正常down 掉(shutdown abort)cache中的 sequence就會丟失 所以可以在create sequence的時候用nocache防止這種情況 order;指定排序

  序列提供兩個方法

  NextVal和CurrValNextVal是取序列的下一個值一次NEXTVAL會增加一次sequence的值CurrVal是取序列的當前值例如在插入記錄時

  insert tablename(id) values(sequence_idnextval)

  ——sequence_id為序列名

  大家需要注意的是第一次NEXTVAL返回的是初始值隨後的NEXTVAL會自動增加你定義的INCREMENT BY值然後返回增加後的值CURRVAL總是返回當前sequence的值但是在第一次NEXTVAL初始化之後才可以使用CURRVAL否則會出現出錯

  注釋在使用powerdesign進行數據庫設計時powerdesigner對Oracle的支持有些差強人意你會發現powerdesign會自動為序列名加上在Oracle中雖然可以執行成功也可以看到序列存在但是如果你運行select sequence_namenextval from dual它就會提示序列(名)不存在!所以大家在鍵序列的時候需要特別的留意


From:http://tw.wingwit.com/Article/program/Oracle/201311/16985.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.