1.什么是sequence?其作用是什么?
在Oracle數據庫中,什么是序列呢?其中的作用是什么呢?其實sequence是序列號生成器,可以為表中的行自動生成序列號,產生一組等間隔的數值(類型為數字)。其主要的用途是生成表的主鍵值,可以在插入語句中引用,在插入之前,獲取序列號nextval值,然后進行插入。也可以通過查詢檢查當前值,或使序列增至下一個值。
2.如何定義一個sequence?
create sequence INR_REQUIRMENT_SQUENCE
INCREMENT BY 1 -- 每次加幾個
START WITH 1 -- 從1開始計數
NOMAXVALUE -- 不設置最大值
NOCYCLE -- 一直累加,不循環
CACHE 10;
上面語句則創建了一個sequence?
3.如何獲取一個sequence的值?
SELECT INR_REQUIRMENT_SQUENCE.CURRVAL FROM dual --獲取當前的sequence的值,第一次NEXTVAL返回的是初始值;隨后的NEXTVAL會自動增加你定義的INCREMENT BY值, 然后返回增加后的值。CURRVAL 總是返回當前sequence的值,但是在第一次NEXTVAL 初始化之后才能使用CURRVAL,否則會出錯。一次NEXTVAL會增加一次sequence的值, 所以如果你在同一個語句里面使用多個NEXTVAL。
4.可以在哪些地方使用Sequence?
- 不包含子查詢、snapshot、VIEW的 SELECT 語句
- INSERT語句的子查詢中
- NSERT語句的VALUES中
- UPDATE 的 SET中
在實際開發中,比如一個表中的主鍵需要先得到主鍵ID,可以用NEXTVAL來獲下一個取序列值,然后再進行其他操作。
5.如何刪除Sequence?
DROP sequence policy_id_seq; --policy_id_seq為sequence的名字,如果要改變sequence中的初始值,必須先刪除序列號然后再進行創建。你或者是該sequence的owner,或者有ALTER ANY sequence權限才能改動sequence,直接用Alter語句進行sequence的更新。
到此這篇關于Oracle中NEXTVAL案例詳解的文章就介紹到這了,更多相關Oracle中NEXTVAL內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- Oracle區別ADG與DG案例詳解
- oracle創建用戶過程詳解
- Oracle rac案例講解
- Oracle存儲過程案例詳解
- Oracle之TO_DATE用法詳解
- 如何使用Oracle PL/SQL 實現發送電子郵件功能(UTL_MAIL)
- springboot+mybatis-plus+oracle實現邏輯刪除
- oracle+mybatis-plus+springboot實現分頁查詢的實例