Oracle 查詢序列的值,修改序列的值
阿新 • • 發佈:2019-01-20
get amp sequence 語法 分配 序列 create 就是 nocache 表示數據庫預先分配n個值保存在內存中(默認20個)
1.序列的語法形式
1 create sequence 序列名 2 increment by n 3 start with n 4 maxvalue n | nomaxvalue 5 minvalue n | nominvalue 6 cycle | nocycle 7 cache n | nocache
序列以(start with n)為第一個序列的值,序列各值之間的間隔為(increment by n),序列的最大值為(maxvalue n),序列的最小值為(minvalue n)
cycle表示如果序列的值大於最大值則開始從最小值循環(默認不循環產生),cache n
2.創建序列
1 --創建序列 dept_deptid_seq 2 create sequence dept_deptid_seq 3 increment by 10 4 start with 280 5 maxvalue 9990 6 nocycle 7 nocache 8 9 --創建默認序列 no_no_seq 10 create sequence no_no_seq
默認序列,為上升序列,由1開始,增量為1,沒有上限,緩存中序列值個數為20
3.查詢序列的值
當剛創建好序列後,不能直接查詢當前序列的值,必須先用 nextval 查詢下一個序列的值,之後才可以使用currval查詢當前序列的值。
查詢序列
select sequence_name ,last_number, min_value,max_value,increment_by from user_sequences
第一次使用nextval 查詢到的值就是 (start with n) .
select dept_deptid_seq.nextval from dual
之後就可以任意使用 currval 了。
select dept_deptid_seq.currval from dual
當再次查詢序列,它的 last_number 變為了序列的下一個值。
4.修改序列的值
將序列 dept_deptid_seq 的間隔變為1後,查詢序列 ,並輸出序列的下一個值
alter sequence dept_deptid_seq increment by 1 select sequence_name ,last_number, min_value,max_value,increment_by from user_sequences
select dept_deptid_seq.nextval from dual
參考:
Oracle 查詢序列的值,修改序列的值