最近在做Oracle的項目,由於以前沒有接觸過Oracle的開發,遇到了不少的問題,比如給Oracle表添加自增列,與SQL Server就不同。
Oracle沒有自增字段這樣的功能,但是通過觸發器(trigger)和序列(sequence)可以實現。
先建一個測試表了:
create table userlogin
(
id number(6) not null,
name varchar2(30) not null primary key
)
tablespace users
/
第一步:創建SEQUENCE
create sequence userlogin_seq increment by 1 start with 1 minvalue 1 maxvalue 9999999999999 nocache order;
第二步:創建一個基於該表的before insert 觸發器,在觸發器中使用剛創建的SEQUENCE
create or replace trigger userlogin_trigger
before insert on userlogin
for each row
begin
select userlogin_seq.nextval into:new.id from sys.dual ;
end;
/
第三步:在userlogin表中測試
寫個insert語句,插入一條記錄,看ID字段自增了沒,自增則OK啦。