oracle自增長序列

2021-06-16 20:37:34 字數 2009 閱讀 5099

例1:建立序列:

create

sequence abc increment by1

start

with

1maxvalue

9999999999

nocycle nocache;

語法詳解

create

sequence 序列名

[increment by n]--

1、[start with n]--

2、--

3、--

4、;

--5、

其中:1

、increment

by用於定義序列的步長(增長量),如果省略,則預設為1,如果出現負值,則代表序列的值是按照此步長遞減的。

2、start

with

定義序列的初始值(即產生的第乙個值),預設為1。

3、maxvalue 定義序列生成器能產生的最大值。

選項nomaxvalue是預設選項,代表沒有最大值定義,這時對於遞增序列,系統能夠產生的最大值是10的27次方;對於遞減序列,最大值是-1

。 minvalue 定義序列生成器能產生的最小值。

選項nomaxvalue是預設選項,代表沒有最小值定義,這時對於遞減序列,系統能夠產生的最小值是?10的26次方;對於遞增序列,最小值是1。

4、cycle 和 nocycle 表示當序列生成器的值達到限制值後是否迴圈。cycle代表迴圈,nocycle代表不迴圈。

如果迴圈,則當遞增序列達到最大值時,迴圈到最小值;對於遞減序列達到最小值時,迴圈到最大值。

如果不迴圈,達到限制值後,繼續產生新值就會發生錯誤。

5、cache(緩衝)定義存放序列的記憶體塊的大小,預設為20。nocache表示不對序列進行記憶體緩衝。

對序列進行記憶體緩衝,可以改善序列的效能

例2:刪除序列:

drop

sequence 序列名;

select

序列名.currval

from

dual;

--獲取序列的當前值

select

序列名.nextval

from

dual;

--獲取序列的下乙個值

例4:檢視序列

同過資料字典user_objects可以檢視使用者擁有的序列。

通過資料字典user_sequences可以檢視序列的設定。

select

*from

user_objects;

select

*from

user_sequences;

在oracle中,可以為每張表的主鍵建立乙個單獨的序列,然後從這個序列中獲取自動增加的識別符號,把它賦值給主鍵。例如一下語句建立了乙個名為customer_id_seq的序列,這個序列的起始值為1,增量為2。

create sequence customer_id_seq increment by

2 start with

1

一旦定義了customer_id_seq序列,就可以訪問序列的curval和nextval屬性。

以下sql語句先建立了customers表,然後插入兩條記錄,在插入時設定了id和name欄位的值,其中id欄位的值來自於customer_id_seq序列。最後查詢customers表中的id欄位。

create

table customers(id int

primary

keynot

null, name varchar(15

));insert

into customers values(customer_id_seq.nextval, '

name1');

insert

into customers values(customer_id_seq.nextval, '

name2');

select id from customers;

oracle中建立自增長序列

首先建立序列 create sequence incr stu id seq minvalue 1 start with 1 increment by 1 nomaxvalue nocache 然後建立觸發器 create or replace trigger incr stu id trig be...

Oracle建立自增長序列 SEQUENCE

oracle通過建立序列來實現自增張欄位。建立序列的語法 建立序列的語法 create sequence user sequence name increment by n start with n maxvalue n nomaxvalue minvalue n nominvalue 修改序列的語...

自增長序列 serial

serial create table tuniq idserial,name text insert into tuniq name values zero insert into tuniq name values second 表名 欄位名 seq 實現的,每次插入的時候會從這個seq中取值作...