oracle之序列
CREATE SEQUENCE test
INCREMENT BY 1
START WITH 100
MAXVALUE 99999999
NOMINVALUE
NOCYCLE
NOCACHE
NOORDER
INCREMENT BY 1
START WITH 100
MAXVALUE 99999999
NOMINVALUE
NOCYCLE
NOCACHE
NOORDER
1)INCREMENT BY用於定義序列的步長,如果省略,則預設為1,如果出現負值,則代表Oracle序列的值是按照此步長遞減的。
2)START WITH 定義序列的初始值(即產生的第一個值),預設為1。
3)MAXVALUE 定義序列生成器能產生的最大值。選項NOMAXVALUE是預設選項,代表沒有最大值定義,這時對於遞增Oracle序列,系統能夠產生的最大值是10的27次方;對於遞減序列,最大值是-1。
4)MINVALUE定義序列生成器能產生的最小值。選項NOMAXVALUE是預設選項,代表沒有最小值定義,這時對於遞減序列,系統能夠產生的最小值是?10的26次方;對於遞增序列,最小值是1。
5)CYCLE和NOCYCLE 表示當序列生成器的值達到限制值後是否迴圈。
CYCLE代表迴圈,NOCYCLE代表不迴圈。
如果迴圈,則當遞增序列達到最大值時,迴圈到最小值;對於遞減序列達到最小值時,迴圈到最大值。
如果不迴圈,達到限制值後,繼續產生新值就會發生錯誤。
CYCLE代表迴圈,NOCYCLE代表不迴圈。
如果迴圈,則當遞增序列達到最大值時,迴圈到最小值;對於遞減序列達到最小值時,迴圈到最大值。
如果不迴圈,達到限制值後,繼續產生新值就會發生錯誤。
6)CACHE(緩衝)定義存放序列的記憶體塊的大小,預設為20。NOCACHE表示不對序列進行記憶體緩衝。對序列進行記憶體緩衝,可以改善序列的效能。
第一步 建立序列
create sequence sql_nocy
increment by 1
start with 100
minvalue 100
maxvalue 110
nocycle;
create sequence sql_nocy
increment by 1
start with 100
minvalue 100
maxvalue 110
nocycle;
select sql_nocy.nextVal , sql_nocy.currval from dual
第二步 建立表
create table test_tab(
name varchar2(20),
id number);
create table test_tab(
name varchar2(20),
id number);
第三步 插入資料
通過觸發器
通過觸發器
create trigger TRG_TEST before insert on TEST
for each row
begin
select sql_nocy.nextval into :new.TEST_ID from dual;
end;
for each row
begin
select sql_nocy.nextval into :new.TEST_ID from dual;
end;
直接插入
insert into test_tab values('qilin',sql_nocy.nextal);
SQL> insert into test_tab values('qilin',55);
insert into test_tab values('qilin',sql_nocy.nextal);
SQL> insert into test_tab values('qilin',55);
已建立 1 行。
SQL> insert into test_tab values('qilin',35);
已建立 1 行。
SQL> insert into test_tab values('qilin',45);
已建立 1 行。
SQL> insert into test_tab values('qilin',sql_nocy.nextval);
第四步 查詢
SQL> select * from test_tab;
SQL> select * from test_tab;
NAME ID
-------------------- ----------
qilin 101
qilin 55
qilin 35
qilin 45
qilin 102
-------------------- ----------
qilin 101
qilin 55
qilin 35
qilin 45
qilin 102
第五步 再次建立迴圈的序列
create sequence sql_cy
increment by 1
start with 100
minvalue 100
maxvalue 110
NOCACHE
cycle;
create sequence sql_cy
increment by 1
start with 100
minvalue 100
maxvalue 110
NOCACHE
cycle;
第六步 查詢顯示結果
SQL> desc v$pwfile_users;
SQL> desc dba_sys_privs;
SQL> desc dba_roles;
SQL> desc role_sys_privs;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20976446/viewspace-716913/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle之Sequence(序列)Oracle
- Oracle序列Oracle
- oracle 序列Oracle
- Oracle - Sequence序列Oracle
- Oracle序列sequenceOracle
- Oracle OCP(23):序列Oracle
- oracle 序列 詳解Oracle
- oracle 序列詳解Oracle
- 0705_oracle 序列Oracle
- Oracle 建立序列語句Oracle
- Oracle建立和使用序列Oracle
- oracle 序列的建立與使用Oracle
- Oracle RAC序列效能測試Oracle
- oracle 修改序列起始值Oracle
- oracle下批量增加序列值Oracle
- Oracle序列使用:建立、刪除Oracle
- DRF之序列化元件元件
- oracle主鍵序列的建立,刪除,修改序列起始值Oracle
- Oracle資料庫開發——序列Oracle資料庫
- python序列資料型別之序列資料的基本操作Python資料型別
- Flask RESTful API開發之序列化與反序列化FlaskRESTAPI
- Java安全基礎之Java序列化與反序列化Java
- 解決Oracle序列跳號問題Oracle
- Oracle 產生序列的 6 種方法Oracle
- Oracle重置序列(不刪除重建方式)Oracle
- oracle開發中序列的使用(轉)Oracle
- 分散式通訊之序列化分散式
- Java安全之RMI反序列化Java
- 通訊協議之序列化協議
- 【Zookeeper】原始碼分析之序列化原始碼
- python之 序列與字典遍歷Python
- Python學習筆記之序列Python筆記
- [java IO流]之 序列化流和反序列化流(ObjectOutputStream/ObjectInputStream)JavaObject
- 簡單介紹oracle重置序列的方法Oracle
- oracle序列達到了最大值處理Oracle
- Oracle並行操作——從序列到並行Oracle並行
- 10-django——RESTful API 之序列化DjangoRESTAPI
- Web安全之PHP反序列化漏洞WebPHP