oracle中的序列

2021-06-04 23:25:13 字數 2476 閱讀 2775

什麼是序列?

序列: 可供多個使用者用來產生唯一數值的資料庫物件

自動提供唯一的數值

共享物件

主要用於提供主鍵值

將序列值裝入記憶體可以提高訪問效率

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 每次...