Oracle資料庫開發——序列
序列是Oracle資料庫中一個生成整數序號的模式物件。由序列產生的一組整數可以用作表的主鍵值,這個在資料庫開過程中經常用到。
序列的建立語句和選項:
create sequence [schema].sequence_name
[increment by {1|n}]
[start with n]
[maxvalue n | nomaxvalue]
[minvalue n | nominvalue]
[cycle | nocycle]
[cache n | nocache]
[order | noorder];
其中:
increment by 指定序列增長的步長,預設為1。如果n是負值,則代表序列值遞減。
start with 起始值,預設為1
maxvalue 指定序列最大值。nomaxvalue是預設選項,表示沒有最大值。
minvalue 指定序列最小值。nominvalue是預設選項,表示沒有最小值。
cycle | nocycle 指定序列在達到最大值或最小值後是否迴圈。
cache | nocache 指定資料庫是否在記憶體中預分配一定數量的序列值進行快取,預分配序列值可以加快訪問速度,提高效能;
引數n的值最小是2,預設值是20;
對於迴圈序列,快取的序列值數量一定要小於該序列迴圈的值數量,可快取的序列值個數最多為:
cell(maxvalue - minvalue)/ ABS(increment)
例:
建立序列
SQL> create sequence emp_seq
2 start with 1000
3 increment by 1
4 minvalue 1
5 maxvalue 10000
6 nocycle
7 cache 5;
Sequence created
使用序列:序列建立後有兩個屬性——currval和nextval來引用序列的值,分別來獲取當前值和下一個值。
SQL> select emp_seq.nextval from dual;
NEXTVAL
----------
1000
SQL> select emp_seq.currval from dual;
CURRVAL
----------
1000
序列常用於保證主鍵不重複
SQL> create table emp_test
2 (emp_id number(6) primary key
3 ,ename varchar2(10)
4 );
Table created
SQL> insert into emp_test values(emp_seq.nextval,'aaa');
1 row inserted
SQL> insert into emp_test values(emp_seq.nextval,'bbb');
1 row inserted
SQL> select * from emp_test;
EMP_ID ENAME
------- ----------
1002 aaa
1003 bbb
修改序列:alter sequence emp_seq incrementby 10;
注意:序列修改不能修改起始值!
SQL> alter sequence emp_seq start with 100;
alter sequence emp_seq start with 100
ORA-02283: 無法變更啟動序列號
刪除序列:dorp sequence emp_seq;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28929558/viewspace-1146757/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle資料庫開發——表(概念)Oracle資料庫
- Oracle資料庫開發指南(二)Oracle資料庫
- ORACLE資料庫開發經驗Oracle資料庫
- oracle資料庫建立Squence序列並查詢Oracle資料庫
- oracle為資料庫每張表建立序列Oracle資料庫
- Oracle資料庫開發——臨時表Oracle資料庫
- Oracle資料庫開發——同義詞Oracle資料庫
- Oracle資料庫開發——瞭解索引Oracle資料庫索引
- Oracle資料庫開發指南(原創)Oracle資料庫
- Oracle資料庫開發——瞭解rowidOracle資料庫
- Oracle資料庫開發——深入索引結構Oracle資料庫索引
- ORACLE資料庫開發經驗總結Oracle資料庫
- 資料庫併發如何讓資料操作序列化資料庫
- Oracle資料庫開發——表(資料完整性約束)Oracle資料庫
- Oracle資料庫發展Oracle資料庫
- Oracle資料庫開發——瞭解分割槽表Oracle資料庫
- oracle資料庫開發的一些經驗Oracle資料庫
- oracle開發中序列的使用(轉)Oracle
- Oracle資料庫升級(轉發)Oracle資料庫
- 達夢資料庫開發資料庫
- 使用js開發資料庫JS資料庫
- SQLserver本地資料庫開發SQLServer資料庫
- 資料庫開發(20)XML資料庫XML
- windows phone資料庫開發Windows資料庫
- Oracle資料庫開啟NUMA支援Oracle資料庫
- Oracle資料庫開啟歸檔Oracle資料庫
- 開啟oracle資料庫歸檔Oracle資料庫
- 資料庫開發(19)基於物件的資料庫資料庫物件
- 幾條Oracle資料庫開發的原則歸納(上)Oracle資料庫
- 幾條Oracle資料庫開發的原則歸納(下)Oracle資料庫
- 為Oracle資料庫表建立自動增長序列及Oracle的常見操作Oracle資料庫
- 生產資料庫、開發資料庫、測試資料庫中的資料的區分資料庫
- XML資料庫開發手冊XML資料庫
- 【MySQL】資料庫開發規範MySql資料庫
- 序列化,資料庫存多個欄位資料資料庫
- 資料庫開發(21)高階應用開發資料庫
- 資料庫開發---常用物件-觸發器資料庫物件觸發器
- Oracle 資料庫Oracle資料庫