Oracle 建立主鍵自增表

pursuer.chen發表於2016-10-17

介紹

 本篇文章主要介紹在oracle中如果建立自增長表,這裡要用到序列。

 

 

create table tb_student
(
   id                 NUMBER(10)           not null,
   createtime         DATE                 not null,
   constraint PK_tb_student primary key (id)
);

comment on table "tb_student" is
'學生';

comment on column "tb_student"."id" is
'主鍵id';

comment on column "tb_student"."createtime" is
'建立時間';


--建立序列
create sequence seq_tb_student
minvalue 1
nomaxvalue
start with 1
increment by 1
nocycle   --一直累加,不迴圈
--nocache;  --不快取
cache 10; --快取10條

--建立觸發器,如果insert語句不指定ID自動插入增長值
CREATE OR REPLACE TRIGGER tr_tb_student 
BEFORE INSERT ON tb_student FOR EACH ROW WHEN (new.id is null)
begin
select seq_tb_student.nextval into:new.id from dual;
end;

 

 注意:觸發器是非必須的,可以從業務上嚴格要求指定插入值。

總結

 注意oracle限制物件名的字元長度不能超過30個字元,所以表名要控制在一定的長度否則後面建立序列可能會超過限制,建議表名控制在27個字元以下。

 

 

備註:

    作者:pursuer.chen

    部落格:http://www.cnblogs.com/chenmh

本站點所有隨筆都是原創,歡迎大家轉載;但轉載時必須註明文章來源,且在文章開頭明顯處給明連結。

《歡迎交流討論》

相關文章