關於資料庫中Sequence的總結

2021-09-24 18:59:11 字數 1144 閱讀 6101

sequence是資料庫系統按照一定規則自動增加的數字序列。這個序列一般作為**主鍵(因為不會重複),沒有其他任何意義。

一、定義sequence

定義乙個seq_test,最小值為10000,最大值為99999999999999999,從20000開始,增量的步長為1,快取為20的迴圈排序sequence。

oracle的定義方法:

create sequence seq_test(建立該sequence時起的名稱)

minvalue 10000

maxvalue 99999999999999999

start with 20000

increment by 1

cache 20

cycle

order;

db2的寫法:

create sequence seq_test

as bigint

start with 20000

increment by 1

minvalue 10000

maxvalue 99999999999999999

cycle

cache 20

order;

二、查詢sequence

oracle:

查詢當前值: select seq_test(建立sequence時起的名稱).currval from dual

db2:

查詢當前值: select seq_test(建立sequence時起的名稱).currval from sysibm.sysdummy1

三、1、 第一次nextval返回的是初始值;隨後的nextval會自動增加你定義的increment by值,然後返回增加後的值。currval 總是返回當前sequence的值,但是在第一次nextval初始化之後才能使用currval,否則會出錯。一次nextval會增加一次sequence的值。

2、如果指定cache值,oracle就可以預先在記憶體裡面放置一些sequence,這樣訪問的快些。cache裡面的取完後,oracle自動再取一組到cache。 使用cache或許會跳號, 比如資料庫突然不正常down掉(shutdown abort),cache中的sequence就會丟失. 所以可以在create sequence的時候用nocache防止這種情況。

資料庫中的Sequence

sequence是資料庫系統按照一定規則自動增加的數字序列。這個序列一般作為 主鍵 因為不會重複 沒有其他任何意義。sequence是資料庫系統的特性,有的資料庫有sequence,有的沒有。比如oracle db2 postgresql資料庫有sequence,mysql sql server s...

Oracle資料庫中Sequence的用法

在oracle資料庫中,sequence等同於序列號,每次取的時候sequence會自動增加,一般會作用於需要按序列號排序的地方。1 create sequence 注釋 你需要有create sequence或create any sequence許可權 create sequence emp s...

資料庫 Sequence 設計

a.首先得建一張用於存放sequence的表 tbl sequence table structure for tbl sequence drop table if exists tbl sequence create table tbl sequence seq name varchar 50 n...