概念:所謂序列,在oracle中就是乙個物件,這個物件用來提供乙個有序的資料列,這個有序的資料列的值都不重複。
1.序列可以自動生成唯一值
2.是乙個可以被共享的物件
3.典型的用來生成主鍵值的乙個物件
4.可以替代應用程式**
5.當sequence的值存放在快取中時可以提高訪問效率。
建立序列語法:
create sequence name
[increment by n]
[start with n]
note:
1.increment by n:表明值每次增長n(步長)
2.start with n: 從n開始
3.: 設定最大值
4.: 設定最小值,start with不能小於最小值。
5.cycle | nocycle : 是否迴圈,建議不使用
6.cache n | nocache : 是否啟用快取。
例如:create sequence emp_id_seq
start with 1
increment by 1
nomaxvalue
nominvalue
nocycle
nocache;
note:可以通過資料字典user_sequences檢視當前使用者所擁有的序列資訊。
例如:select sequence_name,min_value,max_value,last_number
from user_sequences
where sequence_name = 'emp_id_seq';
序列的屬性(偽列):
1.nextval : 返回下乙個可用的序列值。
就算是被不同的使用者呼叫,每次也返回乙個唯一的值。
2.currval :獲取序列當前的值。
在currval呼叫之前,必須保證nextval已經獲取過一次值。
使用sequence:
例如:1.向表中插入資料
insert into emp values(emp_id_seq.nextval);
2.檢視序列的當前值
select emp_id_seq.currval from dual;
3.獲取序列的下乙個值。
select emp_id_seq.nextval from dual;
快取:使用快取可以提高sequence的訪問效率
修改sequence:
alter sequence name
[increment by n]
note:
1.必須是序列的擁有者,或者具有alter許可權
2.修改後的序列,只對之後的值起作用。
3.不能修改start with,如果想改,只能刪除,重新建立,啟動。
刪除sequence:
drop sequence seq_name;
例如:drop sequence emp_id_seq;
例如:--建立序列
create sequence denggh_seq
start with 1
increment by 1
nomaxvalue
nominvalue
nocycle
nocache;
--建立表
create table denggh_serviceadm
(p_servicecode varchar2(30) not null
)-- 查詢表
select * from denggh_serviceadm;
--使用序列
insert into denggh_serviceadm values(denggh_seq.nextval);
--修改序列
alter sequence denggh_seq
increment by 2
nomaxvalue
nominvalue
nocycle
nocache;
--刪除序列
drop sequence denggh_seq;
Oracle建立序列
序列的優點 1 自動的產生唯一的資料 2 產生唯一的值,用於填充主鍵 3 可以在memory中進行快取 建立序列 create sequence increment by n 間隔 start with n 起始位 maxvalue n nomaxvalue 最大值 無限大 minvalue n 最...
Oracle建立序列
所謂序列,在oracle中就是乙個物件,這個物件用來提供乙個有序的資料列,這個有序的資料列的值都不重複。1.序列可以自動生成唯一值 2.是乙個可以被共享的物件 3.典型的用來生成主鍵值的乙個物件 4.可以替代應用程式 5.當sequence的值存放在快取中時可以提高訪問效率。create seque...
Oracle 建立序列
序列 oracle中就是乙個物件,這個物件用來提供乙個有序的資料列,這個有序的資料列的值都不重複。作用 1.序列可以自動生成唯一值 2.可以被共享的物件 3.用來生成主鍵值的乙個物件 4.可以替代應用程式 5.當sequence的值存放在快取中時可以提高訪問效率。語法 建立序列語法 create s...