介紹 本篇文章主要介紹在oracle中如果創建自增長表,這裡要用到序列。 create table tb_student ( id NUMBER(10) not null, createtime DATE not null, constraint PK_tb_student primary key ...
介紹
本篇文章主要介紹在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 本站點所有隨筆都是原創,歡迎大家轉載;但轉載時必須註明文章來源,且在文章開頭明顯處給明鏈接。 《歡迎交流討論》 |