序列——Sequence

7.1About Sequencess(關(guān)于序列)

序列是數(shù)據(jù)庫對象的一種。
多個用戶能夠通過序列來生成連續(xù)的數(shù)字以此來實現(xiàn)主鍵字段的“自己主動”和“唯一增長”。而且一個序列可為多列、多表同一時刻使用。

序列消除了串行化而且提高了應(yīng)用程序一致性。

7.2Creating Sequences(創(chuàng)建序列)

在system模式下創(chuàng)建序列需要擁有create sequence 權(quán)限。
在其他用戶模式下創(chuàng)建序列則需要create any sequence權(quán)限?!Z法為:Syntax 。
--假設(shè)不加條件語句,默認創(chuàng)建的序列格式例如下:

create sequence SEQ_T
minvalue 1
maxvalue 9999999999999
start with 1
increment by 1
cache;

語義Semantics:
INCREMENT BY :指定序列增長步長。
能夠為正、負整數(shù)分別對應(yīng)升序、降序。但不能為0——(序列不重復(fù))
最高精度28.

START WITH :指定序列起始數(shù)。
MAXVALUE:指定序列最大值。最大28位。必須大于等于起始值且大于等于序列最小值。
MINVALUE:指定序列最小值。
NOMAXVALUE:無最大值(實際為10^27或-1)。default
NOMINVALUE:無最小值(實際為-10^27或1)。default
CYCLE:指定序列達到最大值或最小值后繼續(xù)從頭開始生成。
NOCYCLE:指定不循環(huán)生成。default
CACHE:指定數(shù)據(jù)庫內(nèi)存中預(yù)分配的序列值的個數(shù),以便告訴獲取。最小cache值為2.
最大值為:(CEIL(MAXVALUE-MINVALUE))/ABS(INCREMENT)
注:假設(shè)系統(tǒng)發(fā)生問題。全部緩存的沒有被DML語句使用并提交的序列將會丟失。潛在丟失值數(shù)量等于cache指定的預(yù)先內(nèi)存分配序列值個數(shù)。
NOCACHE:不指定緩存數(shù),默認為20.
ORDER:指定order條件保證序列按請求順序生成。
此條件適用于RAC和環(huán)境。
NOORDER:不保證序列按請求順序生成。

CREATE SEQUENCE customers_seq
START WITH 1000
INCREMENT BY 1
NOCACHE
NOCYCLE
--創(chuàng)建名為customers_seq的序列,起始值1000,步長為1,沒有緩存數(shù)量即內(nèi)存中預(yù)分配的序列值個數(shù)為20,不循環(huán)生成。

注:帶有cycle條件的序列當達到最大值時,下一個值會從最小值minvalue開始循環(huán)。

7.3 ALTER SEQUENCE(改動序列)

改動system模式的序列需要alter object權(quán)限。
改動其他模式序列需要alter any sequence權(quán)限。

1.假設(shè)想要以與現(xiàn)存不同數(shù)字又一次開始序列;則必須刪除重建。

alter sequence seq_t start with 2;
alter sequence seq_t start with 2 * ERROR at line 1:ORA-02283:cannot alter starting sequencenumber

2.改動的maxvalue必須大于序列當前值。

alter sequence seq_t maxvalue 1;  --error

7.4DROP SEQUENCE(刪除序列)

刪除序列不許要有drop any sequence 權(quán)限。

DROP SEQUENCE oe.customers_seq;

7.5 NEXTVAL and CURRVAL :

nextval的值是每調(diào)用一次就增加一次;currval的值調(diào)用時,還是和自身會話的當前值一樣。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當在唯一索引所對應(yīng)的列上鍵入重復(fù)值時,會觸發(fā)此異常。 O...
    我想起個好名字閱讀 6,023評論 0 9
  • 序列(Sequence)是最小類型的項目。它們適合于線性過程,因為它們使您能夠無縫地從一個活動轉(zhuǎn)到另一個活動,并充...
    Creator_蔚藍閱讀 6,753評論 3 6
  • Oracle筆記系列這幾篇是來自一位老師的筆記,分享給大家放在簡書上,主要方便自己時常復(fù)習,還有學習Oracle的...
    panda_Hi閱讀 989評論 0 0
  • 第一天 7月13日OCP筆記: Oracle Ocp11g準備資料: OracleFundmentals 書 管理...
    fjxCode閱讀 2,893評論 0 4
  • 對于很多一直堅持健身習慣的人來說、自律已經(jīng)是生活和骨子里的一部分。 人和人的的差別都是一點一滴積累起來的 他在跑步...
    林強的成長分享閱讀 354評論 0 0

友情鏈接更多精彩內(nèi)容