oracle序列
目錄
1.什么是序列
2.定義序列
3.查詢序列
4.NEXTVAL 和 CURRVAL 偽列
5.序列應用實例
6.修改序列
7.刪除序列
8.序列的裂縫
1.什么是序列
-
序列: 可供多個用戶用來產生唯一數值的數據庫對象
-
自動提供唯一的數值
-
共享對象
-
主要用于提供主鍵值
-
將序列值裝入內存可以提高訪問效率
-
2.定義序列
CREATE SEQUENCE sequence[INCREMENT BY n] ?--每次增長的數值[START WITH n] ? ?--從哪個值開始[{MAXVALUE n | NOMAXVALUE}][{MINVALUE n | NOMINVALUE}][{CYCLE | NOCYCLE}] ? ? --是否需要循環[{CACHE n | NOCACHE}]; ?--是否緩存登錄3.查詢序列
-
查詢數據字典視圖 USER_SEQUENCES 獲取序列定義信息
4.NEXTVAL 和 CURRVAL 偽列
-
NEXTVAL 返回序列中下一個有效的值,任何用戶都可以引用
-
CURRVAL 中存放序列的當前值
-
NEXTVAL 應在 CURRVAL 之前指定,否則會報CURRVAL 尚未在此會話中定義的錯誤。
5.序列應用實例
INSERT INTO departments(department_id, department_name, location_id) VALUES ? ? (dept_deptid_seq.NEXTVAL, 'Support', 2500);6.修改序列
-- 修改序列的增量, 最大值, 最小值, 循環選項, 或是否裝入內存 ? ALTER SEQUENCE dept_deptid_seqINCREMENT BY 20MAXVALUE 999999NOCACHENOCYCLE; /* 注意事項:1.必須是序列的擁有者或對序列有 ALTER 權限2.只有將來的序列值會被改變3.改變序列的初始值只能通過刪除序列之后重建序列的方法實現 */7.刪除序列
-- 使用 DROP SEQUENCE 語句刪除序列 -- 刪除之后,序列不能再次被引用 ? DROP SEQUENCE dept_deptid_seq;8.序列的裂縫
-
序列在下列情況下出現裂縫:
-
回滾
-
系統異常
-
多個表同時使用同一序列
-
總結
- 上一篇: SpringMVC中@ResponseB
- 下一篇: SSM的整合