Oracle创建序列的sql语句,【Oracle学习】之 序列(Sequence)
一、序列的特點(diǎn):
1。 可以為表中的記錄自動產(chǎn)生唯一序號;
2。 由用戶創(chuàng)建并且可以被多個用戶共享;
3。典型應(yīng)用是生成主鍵值,用于標(biāo)識記錄的唯一性;
4。允許同時生成多個序列號,而每一個序列號是唯一的。
5。使用緩存可以加速序列的訪問速度。
二、創(chuàng)建序列:
CREATE SEQUENCE [ schema. ] sequence
[ { INCREMENT BY | START WITH } integer
| { MAXVALUE integer | NOMAXVALUE }
| { MINVALUE integer | NOMINVALUE }
| { CYCLE | NOCYCLE }
| { CACHE integer | NOCACHE }
| { ORDER | NOORDER }
]…
START WITH:設(shè)置序列初始值,默認(rèn)值為1。
INCREMENT BY:設(shè)置相鄰兩個元素之間的差值,默認(rèn)為 1。
NOMAXVALUE:默認(rèn)情況下,遞增序列的最大值為10^28 - 1
NOMINVALUE:最大值:-1, 最小值為 -(10^27 - 1)
三、序列的使用:
序列具有CURRVAL和NEXTVAL兩個偽列。(均返回NUMBER類型)
①CURRVAL:返回序列的當(dāng)前值
②NEXTVAL:在序列中產(chǎn)生新值并返回此值
++++以下語句可以使用序列的NEXTVAL和CURRVAL:+++++
①SELECT語句的目標(biāo)列中;
②INSERT:語句的子查詢的目標(biāo)列中;
③INSERT:語句的VALUES子句中;
④UPDATE:語句的SET子句中。
++++以下語句不可以使用序列的NEXTVAL和CURRVAL:+++++
①對視圖查詢的SELECT目標(biāo)列中;
②使用了DISTINCT關(guān)鍵字的SELECT語句中;
③SELECT語句中使用GROUP BY、HAVING或ORDER BY子句時;
④在SELECT、DELETE或UPDATE語句的子查詢中;
⑤在CREATE TABLE 或 ALTER TABLE 語句中的默認(rèn)值表達(dá)式中。
Tips:
(1)
(2)在訪問序列中的序號時,可能會發(fā)生序號不連續(xù)的情況,不連續(xù)的原因可能是事務(wù)發(fā)生了回滾,或者多個用戶共同訪問同一個序列。
四、修改序列:
可以使用ALTER SEQUENCE 語句修改序列。除了不能修改序列的START WITH參數(shù)外,可以對序列其他參數(shù)進(jìn)行修改。如果要修改MAXVALUE參數(shù),需要保證修改后的最大值大于序列的當(dāng)前值(CURRVAL)。此外,序列的修改只影響以后生成的序列值。
五、查看序列信息
①dba_sequences
②all_sequences
③user_sequences(一般使用這個查看)
六、刪除
總結(jié)
如果覺得編程之家網(wǎng)站內(nèi)容還不錯,歡迎將編程之家網(wǎng)站推薦給程序員好友。
本圖文內(nèi)容來源于網(wǎng)友網(wǎng)絡(luò)收集整理提供,作為學(xué)習(xí)參考使用,版權(quán)屬于原作者。
總結(jié)
以上是生活随笔為你收集整理的Oracle创建序列的sql语句,【Oracle学习】之 序列(Sequence)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle10g数据库热备份,Orac
- 下一篇: cssd拉起oracle,oracle