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...