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