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資料庫開啟NUMA支援Oracle資料庫
- 資料庫併發如何讓資料操作序列化資料庫
- 「Oracle」Oracle 資料庫安裝Oracle資料庫
- Oracle資料庫配置Oracle資料庫
- oracle資料庫與oracle例項Oracle資料庫
- 「Oracle」Oracle資料庫基本概念Oracle資料庫
- 「Oracle」Oracle 資料庫基本概念Oracle資料庫
- Oracle資料庫-----資料庫的基本概念Oracle資料庫
- oracle 備份資料庫,匯出資料庫Oracle資料庫
- oracle學習筆記(十四) 資料庫物件 索引 檢視 序列 同義詞Oracle筆記資料庫物件索引
- DataX將MySql資料庫資料同步到Oracle資料庫MySql資料庫Oracle
- 資料庫資料恢復-oracle資料庫報錯無法開啟的如何恢復資料?資料庫資料恢復Oracle
- 4.2. Oracle資料庫Oracle資料庫
- Laravel 使用 Oracle 資料庫LaravelOracle資料庫
- oracle資料庫卡頓Oracle資料庫
- Oracle資料庫閃回Oracle資料庫
- oracle資料庫資料字典應用Oracle資料庫
- sqlserver讀取oracle資料庫資料SQLServerOracle資料庫
- Oracle資料庫遷移至PolarDb(阿里雲資料庫)Oracle資料庫阿里
- 「Oracle」Oracle 資料庫備份還原Oracle資料庫
- 使用js開發資料庫JS資料庫
- 達夢資料庫開發資料庫
- [Oracle]Oracle資料庫資料被修改或者刪除恢復資料Oracle資料庫
- DataX將Oracle資料庫資料同步到達夢資料庫Oracle資料庫
- oracle資料庫建立資料庫例項-九五小龐Oracle資料庫
- 生產資料庫、開發資料庫、測試資料庫中的資料的區分資料庫
- oracle資料庫的impdp,expdpOracle資料庫
- Oracle資料庫語句大全Oracle資料庫
- Oracle資料庫跟蹤SQLOracle資料庫SQL
- Oracle 資料庫打包安裝Oracle資料庫
- Access 匯入 oracle 資料庫Oracle資料庫
- 清理oracle資料庫空間Oracle資料庫
- oracle資料庫%notfound的理解Oracle資料庫
- oracle資料庫調優描述Oracle資料庫
- Oracle:容器資料庫簡介Oracle資料庫
- Python 連線 Oracle資料庫PythonOracle資料庫
- oracle資料庫常用語句Oracle資料庫
- Oracle資料庫表碎片整理Oracle資料庫