oracle基於序列建立自動增長ID

2021-08-22 00:27:17 字數 1305 閱讀 3101

我們知道在mysql資料庫中,在建表語句中可以直接輸入auto_increment欄位來實現id的自增長,然而在oracle中並未提供自增長的關鍵字,因此在oracle中我們需要按照以下步驟實現自動增長字段。

第一步:建立序列

-- create sequence

create

sequence

seq_cfg_monitor_program  

--序列名稱

minvalue

1--最小值

maxvalue

9999999999999999999999999999

--最大值

start

with

41--當前從41開始

incrementby1

--每次自增1

cache10;

第二步:建立觸發器

create

orreplace

trigger

觸發器名稱 

before

insert

on作用表名稱 

foreach

row/*對每一行都檢測是否觸發*/

begin

select

seq_cfg_monitor_program.nextval

into

:new.id

from

dual;

end;

好了,到這裡當你再插入表記錄時就可以直接不用插入id,表也會自動插入自增長的id,如下

create table aa(

id number(10) not null,

name varchar2(20)

)insert into aa(name) values('xiaoming');

此時id會自動填入表中,當然如果不怕麻煩或者說資料量不大的情況下,我們也可以手動呼叫序列,實現id的增長,比如以上插入語句我們可以改寫成insert into aa(id,name) values(seq_cfg_monitor_program.nextval,'xiaoming');這樣也是可以的,當然如果這種情況,我想你也就不需要序列了,直接手動插入id即可,比如這樣寫insert into aa(id,name) values(1,'xiaoming');

總結

使用序列自增長注意事項

1.資料量大,且一般通過程式或者應用程式插入時應該採用自增長序列。

2.原則上在使用序列的場合應該遵循一表對應一串行原則,這樣也便於表資料的維護。

ORACLE建立自增序列

步驟 1.建立序列 2.建立觸發器。語法解析 create sequence tb code sequence minvalue 1 maxvalue 999999999999999999999999999 start with 11 increment by 1 cache 10 create o...

Oracle 建立序列自增

oracle不像sql server 有關鍵字identity直接可插入資料時自增 實現oracle 自增列第一步,建立乙個sequence。create sequence tempinfo seq increment by 1 start with 1 minvalue 1 maxvalue 99...

oracle建立自增序列

create sequence user sequence increment by 1 自增1 start with 2 從2開始 nomaxvalue 沒有最大值 nocycle 不迴圈 cache 10 快取10個 select user sequence.currval from dual ...