在Oracle中,能說說建立 Sequences的作用嗎?


另:你們在PL/SQL Developer 中創建表時,應該注意那些細節呢?
謝謝!

5 个解决方案

#1


主要是用來實現某一個表中的一個自增長字段

#2


感覺也是用來處理一個表中自增字段,因為至少現在別的用處還沒怎么碰到過,呵,我學oracle還沒多久

#3


Oracle 使用序列 來生成唯一編號,而不是使用 SQL Server 所用的數據類型 uniqueidentifier。無論是哪種情況,主要用途都是為主鍵列生成一系列唯一編號。與 uniqueidentifier 數據類型不同,序列是與將其用於主鍵值的一個或多個表無關的數據庫對象。

Oracle 序列是原子對象,並且是一致的。也就是說,一旦您訪問一個序列號,Oracle 將在處理下一個請求之前自動遞增下一個編號,從而確保不會出現重復值。

可以使用 CREATE SEQUENCE 命令創建 Oracle 序列。該命令所帶參數包括增量、起始值、最大值、循環和緩存。可使用 NEXTVAL 和 CURRVAL 關鍵字訪問序列值。NEXTVAL 返回序列中的下一個編號,而 CURRVAL 提供對當前值的訪問。HR 架構中的序列 LOCATIONS_SEQ 按如下方式定義:

CREATE SEQUENCE LOCATIONS_SEQ
    INCREMENT BY 100
    START WITH 1
    MAXVALUE 9900
    MINVALUE 1
    NOCYCLE 
    NOCACHE
    NOORDER

大多數序列代碼是不言自明的。NOCYCLE 表示序列在達到最小值或最大值后將不再生成其他值。NOCACHE 表示序列值在被請求之前不會進行分配;可使用預分配機制來改善性能。NOORDER 表示在生成編號時,不能保證按照請求編號的順序返回這些編號。

#4


樓上寫得不錯,可以借鑒

#5


在sql server中我們可以在設計表時使用標識字段來給出一個表的主鍵, 並且是系統自動維護的.

但是,在oracle中沒有這么方便,我們必須建立Sequences, 來實現自增的標識字段.

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com