我們知道在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 ...