Oracle序列的使用

2021-09-28 07:43:11 字數 1506 閱讀 9192

序列定義:可供多個使用者用來產生唯一數值的資料庫物件:

序列特定:

1.自動提供唯一的數值

2.共享物件

3.只要用於提供主鍵值

4.將序列值裝入記憶體可以提高訪問效率

建立序列:

語法:create sequence 序列名 [相關引數]

引數說明 

increment by :序列變化的步進,負值表示遞減。(預設1) 

start with:序列的初始值 。(預設1) 

maxvalue:序列可生成的最大值。(預設不限制最大值,nomaxvalue) 

minvalue:序列可生成的最小值。(預設不限制最小值,nominvalue) 

cycle:用於定義當序列產生的值達到限制值後是否迴圈(nocycle:不迴圈,cycle:迴圈)。 

cache:表示快取序列的個數,資料庫異常終止可能會導致序列中斷不連續的情況,預設值為20,如果不使用快取可設定nocache

例項:

create sequence seq_demo 

increment by 1

start with 1

nomaxvalue

nocycle

nocache;

使用序列:

currval 表示序列的當前值,新序列必須使用一次nextval 才能獲取到值,否則會報錯.

nextval 表示序列的下乙個值。新序列首次使用時獲取的是該序列的初始值,從第二次使用時開始按照設定的步進遞增.

查詢序列的下乙個值:(第一次需要先查詢下乙個值,然後才能查詢當前值)

select seq_name.nextval from dual;
查詢序列的當前值:

select seq_name.currval from dual;
sql語句中使用:

insert into table (id) values (seq_name.nextval);
序列在下列情況下會出現裂縫:

1.回滾

2.系統異常

3.對個表同時使用乙個序列

修改序列:

可以修改序列的增量,最大值,最小值,是否迴圈或是否裝入記憶體.

改變序列的初始值只能通過刪除序列之後重建序列的方式實現.

alter sequence seq_emp

minvalue 1

maxvalue 99999999

increment by 1

cycle -- 到10000後,從頭開始

nocache;

刪除序列:

drop sequence 序列名;

Oracle序列的使用

oracle序列 sequence 是一種資料庫項,能夠生成乙個整數序列。通常用於填充數字型別的主鍵列。1 建立序列 create sequence sequence name start with start num increment by increment num 其中 start num ...

Oracle序列的(Sequence)使用

序列是一資料庫物件,利用它可生成唯一的整數。一般使用序列自動地生成主鍵值。對我們程式設計師來講,精力時間有限,我們只學最有用的知識。大家請看 create sequence user.sequence name increment by n start with n maxvalue n nomax...

oracle中使用序列

場景 在開發中資料庫主鍵id設計為number型別了,因此不能使用uuid進行隨機生成id,那麼現在使用oracle的序列自動生成吧。首先建立序列 create sequence seq case studyid minvalue 1 最小值 maxvalue 999999 最大值 start wi...