什麼是序列?
序列: 可供多個使用者用來產生唯一數值的資料庫物件
自動提供唯一的數值
共享物件
主要用於提供主鍵值
將序列值裝入記憶體可以提高訪問效率
create sequence 語句
createsequence sequence
[increment by n]
[start with n]
;
建立序列
建立序列 dept_deptid_seq為表departments 提供主鍵
不使用 cycle 選項
create sequence dept_deptid_seq
increment by 10
start with 120
maxvalue 9999
nocache
nocycle;
查詢序列
查詢資料字典檢視user_sequences獲取序列定義資訊
select sequence_name,min_value,max_value,increment_by,last_number
from user_sequences;
如果指定nocache選項,則列last_number顯示序列中下乙個有效的值
nextval 和currval偽列
nextval返回序列中下乙個有效地值,任何使用者都可以引用
currval中存放序列的當前值
nextval應在currval之前指定,二者應同時有效
序列應用舉例
insert into departments(department_id,department_name,location_id)
values(dept_deptid_seq.nextval,』support』,2500);
序列dept_deptid_seq的當前值
select dept_dept_seq.currval from dual;
使用序列
將序列值裝入記憶體可提高訪問效率
序列在下列情況下出現裂縫:
回滾
系統異常
多個表同時使用同一序列
如果不將序列的值裝入記憶體(nocache), 可使用表user_sequences 檢視序列當前的有效值
修改序列
修改序列的增量, 最大值, 最小值, 迴圈選項, 或是否裝入記憶體
alter sequence dept_deptid_seq
incrementby 20
maxvalue 999999
nocache
nocycle;
修改序列的注意事項
必須是序列的擁有者或對序列有 alter 許可權
只有將來的序列值會被改變
改變序列的初始值只能通過刪除序列之後重建序列的方法實現
刪除序列
使用drop sequence 語句刪除序列
刪除之後,序列不能再次被引用
drop sequence dept_deptid_seq;
oracle中的序列
oracle中的序列 sequence 的作用相當與sqlserver中的identify作為乙個表的自動增加且唯一標識的列 下面我就用乙個簡單的序列來實現 1.建立序列 create sequence sq sq宣告乙個序列的名稱 start with 1 宣告序列的開始值 immediate b...
Oracle中的序列
序列入門 首先建立t1表 create table t1 id number 10 primary key,name varchar2 8 建立乙個序列 create sequence seq1 insert into t1 id,name values seq1.nextval,a insert ...
oracle中的序列 sequence
在oracle中sequence就是所謂的序列號,每次取的時候它會自動增加,一般用在需要按序列號排序的地方,保證不會重複 執行緒同步 1 create sequence 首先要有create sequence許可權,create sequence sequence increment by n 每次...