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