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 OCP(23):序列Oracle
- 0705_oracle 序列Oracle
- Oracle 建立序列語句Oracle
- Oracle RAC序列效能測試Oracle
- oracle 序列的建立與使用Oracle
- oracle主鍵序列的建立,刪除,修改序列起始值Oracle
- 解決Oracle序列跳號問題Oracle
- 通用mapper用oracle序列作為主鍵APPOracle
- 簡單介紹oracle重置序列的方法Oracle
- DRF之序列化元件元件
- python序列資料型別之序列資料的基本操作Python資料型別
- 序列SRAM和FRAM之間的相似之處
- biopython之成對序列比對Python
- ORACLE基礎之oracle鎖(oracle lock mode)詳解Oracle
- Oracle之結構Oracle
- Java安全基礎之Java序列化與反序列化Java
- oracle 序列值導致的主鍵衝突問題Oracle
- 【TUNE_ORACLE】Oracle Hint之概念與用法Oracle
- 分散式通訊之序列化分散式
- Java安全之RMI反序列化Java
- 看漫畫學python之6.1序列Python
- Oracle實現自增列(序列+觸發器實現、Identity Columns新特性、序列作為預設值)Oracle觸發器IDE
- oracle之 如何 dump logfileOracle
- oracle之 反向鍵索引Oracle索引
- [java IO流]之 序列化流和反序列化流(ObjectOutputStream/ObjectInputStream)JavaObject
- LightDB/postgresql內建特性之訪問oracle之oracle_fdw介紹SQLOracle
- Oracle調優之看懂Oracle執行計劃Oracle
- 10-django——RESTful API 之序列化DjangoRESTAPI
- 時間序列神器之爭:prophet VS lstm
- 劍指offer之順序列印陣列陣列
- Java安全之SnakeYaml反序列化分析JavaYAML
- Web安全之PHP反序列化漏洞WebPHP
- 揭秘ORACLE備份之----RMAN之五(CATALOG)Oracle
- 【TUNE_ORACLE】Oracle Hint之常用Hint功能概述(五)Oracle
- 【TUNE_ORACLE】Oracle Hint之常用Hint功能概述(四)Oracle
- 【TUNE_ORACLE】Oracle Hint之常用Hint功能概述(三)Oracle
- 【TUNE_ORACLE】Oracle Hint之常用Hint功能概述(二)Oracle
- 【TUNE_ORACLE】Oracle Hint之常用Hint功能概述(一)Oracle
- Oracle之Hint使用總結Oracle