oracle序列
概念:所謂序列,在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;
Oracle 序列詳解 建立 修改 刪除和使用
序列 sequence 是一種資料庫物件,可以為表中的行自動生成序列號,利用它可生成唯一的整數,產生一組等間隔的數值 型別為數字number 主要用於生成唯 一 連續的序號。序列是一種共享式的物件,多個使用者可以共同使用序列中的序號。一般序列所生成的整數通常可以用來填充數字型別的主鍵列,這樣當向表中...
oracle 序列的建立與使用
學習了序列,一直沒怎麼有機會用過,做了個簡單的使用練習。在oracle中,可以使用序列自動生成乙個整數序列,主要用來自動為表中的資料型別的主鍵列提供有序的唯一值,這樣就可以避免在向表中新增資料時,手工指定主鍵值。而且使用手工指定主鍵值這種方式時,由於主鍵值不允許重複,因此它要求操作人員在指定主鍵值時...
Oracle 修改序列
1.直接刪除序列,然後重新建立並且設定序列的初始值為希望的資料 drop sequence seq stockflow id create sequence seq stockflow id increment by 1 start with 1000 你想要的值 maxvalue 99999999...