oracle資料庫中序列使用講解
阿新 • • 發佈:2018-12-19
oracle資料庫中序列使用講解
定義:
序列(SEQUENCE)是序列號生成器,可以為表中的行自動生成序列號,產生一組等間隔的數值(型別為數字)。
其主要的用途是生成表的主鍵值,可以在插入語句中使用,也可以通過查詢檢查當前值,或使序列增至下一個值。
建立序列需要使用CREATE SEQUENCE系統許可權,序列的建立方法:
create sequence 序列名
[increment by n]
[start with n]
[{maxvalue/minvalue n|nomaxvalue}]
[{cycle/nocycle}]
[{cache n|nocache}];
釋義:
increment by:用於定義序列的步長,若果省略,則預設為1,若果出現負值,則代表序列的值是按照此步長遞減的。
start with:定義序列的初始值(即產生的第一個值),預設為1
maxvalue:定義序列的最大值。minvalue:定義序列的最小值。nomaxvalue:表示預設選項,沒有最大值定義。
cycle/nocycle:表示當序列生成器的值達到限制值後是否迴圈,cycle表示迴圈,nocycle表示不迴圈。
cache/nocache:定義存放序列的記憶體塊兒的大小,預設為20。nocache:表示不對序列進行記憶體緩衝。對序列進行內
存緩衝可以改善快取的效能。
刪除序列的語法:
drop sequence 序列名;
序列的使用:
currval和nextval來引用序列:
呼叫mextval將生成序列中的下一個序列號,呼叫時指出序列名,即用以下方法:
序列名.nextval;
currval用於產生序列的當前值,無論呼叫多少次都不會產生序列的下一個值,如果序列還沒有通過呼叫nextval產生
過序列的下一個值,先引用currval將沒有意義。
呼叫currval的方法如下:
序列名.currval;
第一次呼叫nextval會產生序列的初始值。
將序列作為表的主鍵的方法:
在向表中插入資料時呼叫nextval方法
insert into 表名 values (序列名.nextval,值1,值2,...);
定義:
序列(SEQUENCE)是序列號生成器,可以為表中的行自動生成序列號,產生一組等間隔的數值(型別為數字)。
其主要的用途是生成表的主鍵值,可以在插入語句中使用,也可以通過查詢檢查當前值,或使序列增至下一個值。
建立序列需要使用CREATE SEQUENCE系統許可權,序列的建立方法:
create sequence 序列名
[increment by n]
[start with n]
[{maxvalue/minvalue n|nomaxvalue}]
[{cycle/nocycle}]
[{cache n|nocache}];
釋義:
increment by:用於定義序列的步長,若果省略,則預設為1,若果出現負值,則代表序列的值是按照此步長遞減的。
start with:定義序列的初始值(即產生的第一個值),預設為1
maxvalue:定義序列的最大值。minvalue:定義序列的最小值。nomaxvalue:表示預設選項,沒有最大值定義。
cycle/nocycle:表示當序列生成器的值達到限制值後是否迴圈,cycle表示迴圈,nocycle表示不迴圈。
cache/nocache:定義存放序列的記憶體塊兒的大小,預設為20。nocache:表示不對序列進行記憶體緩衝。對序列進行內
存緩衝可以改善快取的效能。
刪除序列的語法:
drop sequence 序列名;
序列的使用:
currval和nextval來引用序列:
呼叫mextval將生成序列中的下一個序列號,呼叫時指出序列名,即用以下方法:
序列名.nextval;
currval用於產生序列的當前值,無論呼叫多少次都不會產生序列的下一個值,如果序列還沒有通過呼叫nextval產生
過序列的下一個值,先引用currval將沒有意義。
呼叫currval的方法如下:
序列名.currval;
第一次呼叫nextval會產生序列的初始值。
將序列作為表的主鍵的方法:
在向表中插入資料時呼叫nextval方法
insert into 表名 values (序列名.nextval,值1,值2,...);