介紹
本篇文章主要介紹在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 本站點所有隨筆都是原創,歡迎大家轉載;但轉載時必須註明文章來源,且在文章開頭明顯處給明連結。 《歡迎交流討論》 |