Oracle Sequence建立與使用

2021-07-11 20:20:59 字數 1519 閱讀 2477

最近幾天使用oracle的sequence序列號,發現對如何建立、修改、使用存在很多迷茫點,在上網尋找答案後,根據各路大神的總結,彙總下對自己的學習成果;

在oracle中sequence就是序號,每次提取完都會自動增加,步幅固定,它與表沒有直接關係

建立sequence語句:

create

sequence seq_name--

seq_name為計數器的名字,自定;

increment 

by1

--每次加幅度:1,2,3,....;

start 

with

1

--起始序號,以實際生產情況而定;

nomaxvalue 

--不設定最大值,或設定最大值: maxvalue 9999;

nocycle 

--一直累加,不迴圈; 或迴圈使用 cycle ;

cache 

10

--設定快取序列個數,如果系統down掉了或者其它情況將會導致序列不連續,也可以設定為---------nocache

修改sequence:

alter sequence 可以修改sequence(除起始值)步幅、最大/最小值、是否迴圈、快取個數 這些引數;

例:alter sequence seq_name  

increment  by  2 

maxvalue 9999

cycle

cache 5;

需要修改sequence的起始值,則需要刪除原有sequence,re-create重新建立;

應用sequence:

sequence建立完成後,就可以使用sequence的兩個引數 currval、nextval;

currval查詢sequence的當前值:select seq_name.currval from dual;

刪除sequence :

drop sequence seq_name;

注:

1、currval是取當前值,所以乙個新的計數器sequence必須先使用nextval後才可以使用currval否則會報錯;

2、nextval是取下乙個值,但第一次使用時取的是初始值,之後正常取下乙個,且如果乙個語句(不同的子句)裡面有多個nextval,它們的取值可能是不同的;

3、如果指定cache值,oracle就可以預先在記憶體裡面放置一些sequence,cache裡面的取完後,oracle自動再取一組到cache。 

優點:訪問的快些,尤其是併發訪問時。

缺點:使用cache或許會跳號, 比如資料庫突然不正常down掉(shutdown abort),cache中的sequence就會丟失. 所以可以在建立的時候用nocache防止這種情況。

原創 oracle sequence簡介

sequence簡介 2013 12 26 一 概述 sequence是序列號的意思,每次取的時候它會自動增加。sequence與表沒有從屬關係,與表一樣屬於使用者。二 主要內容 1 create sequence語法 首先使用者要有create sequence或者create any seque...

Oracle Sequence簡單介紹

oracle中提供了sequence物件,由系統提供自增長的序列號,通常用於生成資料庫資料記錄的自增長主鍵或序號的地方.下面就主要介紹一下關於sequence物件的生成,修改,刪除等常用的操作 1.生成 sequence 首先使用者要有create sequence或者create any sequ...

ORACLE SEQUENCE的簡單介紹

在oracle中sequence就是所謂的序列號,每次取的時候它會自動增加,一般用在需要按序列號排序的地方。1 create sequence 你首先要有create sequence或者create any sequence許可權,create sequence emp sequence incr...