[Oracle] 建表时用到的序列触发器

// 注意表名,字段名,索引名 尽量不要带引号

CREATE TABLE FIRSTTB   
(
"ID" NUMBER(8,0) not null primary key,
"NAME" NVARCHAR2(60) not null,
"AGE" NUMBER(4,0) DEFAULT 0 not null ,
"CREATEDTIME" TIMESTAMP (6) not null
)

// 建立序列做自增长id用的
CREATE SEQUENCE FIRSTTB_ID
INCREMENT BY 1
START WITH 1
NOMAXVALUE
NOCYCLE
NOCACHE

// 触发器
CREATE trigger FIRSTTB_trig before
insert on FIRSTTB for each row when (new.ID is null)
begin
select FIRSTTB_ID.nextval into:new.ID from dual;
end;
/   

#注意SQLplus中 / 为结束

 

drop trigger FIRSTTB_trig  // 如果有必要则删除之

创建完毕后可以插值查询下看看:

insert into FIRSTTB(NAME,AGE,CREATEDTIME) values('ANDY','20',SYSDATE);
insert into FIRSTTB(NAME,AGE,CREATEDTIME) values('Bill','30',SYSDATE);
insert into FIRSTTB(NAME,AGE,CREATEDTIME) values('Cindy','40',SYSDATE);

commit;

select * from FIRSTTB

 

--END-- 2019.10.18 8:27

posted @ 2019-10-17 11:45  逆火狂飙  阅读(793)  评论(1)    收藏  举报
生当作人杰 死亦为鬼雄 至今思项羽 不肯过江东