Oracle中建立自增長列

2021-06-16 15:54:26 字數 1649 閱讀 1231

oracle

中建立自增長列

我們都知道,在

mysql

中有乙個列可以設為自動增長的,以此來區別資料行,並且作為其他列查詢該資料的依據。

oracle

中如果在乙個基本表中想有乙個自動增長的標示列

id,該怎樣實現呢?

方法是這樣的,可以建乙個序列

sequence

,設定其屬性從

1開始自動公升序增長。在向基本表中插入資料時,引用序列的值就可以了。

建立序列的方法如下:

create sequence

序列名稱

[start

with

num ]1

[increment

by increment]2

[maxvalue

num | nomaxvalue]3

[minvalue

num | nominvalue]4

[cycle | no cycle]5

[cache

num | nocache]6

說明:1表示序列開始時的初始值,

1代表公升序,

-1代表降序。

2increment

代表公升序或者降序的步長,

1代表每次增加1,

-1代表每次減小1.3

maxvalue num

表示最大值是多少,預設是10的

27次方大;

nomaxvalue

表示沒有最大值。

4minvalue num

表示最小值是多少,預設是

10的負

26次方小;

nominvalue

表示沒有最小值。

5表示是否迴圈,

cycle

時,當達到最大值時,又從最小值開始迴圈,

no cycle

時,當達到最大值或者達到最小值時,資料庫報錯。

6表示記憶體中的緩衝多大,

num表示根據序列規則一次向資料庫申請

num大小的序列號,如果用完不夠了,則在申請

num大小的序列號。

nocache

表示不採用緩衝。

下面是乙個自增長的例子:

createsequencemyseq

--序列名

startwith1

incrementby1

nomaxvalue

minvalue1

nocycle

cache10;

建立了乙個序列,使用序列插入值:insertintotest2values(myseq.nextval,'張飛');在序列中,使用

currval

和nextval

兩個「偽列「訪問當前值和下乙個值。若想多表都使用自增長序列,則多定義幾個序列即可。個人體悟而已,希望對見者有所幫助。

ORACLE自增長列

新建序列 create sequence create sequence q tpa acitive alarms id minvalue 1 maxvalue 99999999999999999 start with 100 increment by 1 cache 100 觸發器 create ...

oracle實現自增長列

1.根據現有表結構t bz bzxx zlyj,將xh設定為自增長 2.建立sequence,如下 建立sequence create sequence t bz bzxx zlyj sequence increment by 1 每次加幾個 start with 1 從1開始計數 nomaxval...

Oracle資料庫中設定自增長列

oracle資料庫中不支援自增長列的,需要通過物件中的sequences 序列 來完成 1.在sequences新建 2.新建資料庫表 3.執行sql語句 sq mybatis.nextval來表示id自增長,sq mybatis是剛才建立的sequences insert into t users...