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