oracle自增字段自动维护

--oracle创建自增id并自动填充字段
--1.目标表创建自增字段:如表存在id,name
alter table FORMLAYOUT add AUTOID number(4);
--1.创建自增序列:注意oracle的序列不同表的序列需要单独创建,因为oracle对
--每个序列单独维护其值,如果多表用一个序列会混乱
CREATE SEQUENCE autoid_sequence
  INCREMENT BY 1 -- 每次加几个
  START WITH 1 -- 从1开始计数
  NOMAXVALUE -- 不设置最大值
  NOCYCLE -- 一直累加,不循环
  NOCACHE -- 不建缓冲区

--2.在目标表上增加触发器,注意oracle名称中如果有-需要加双引号
--drop trigger "trigger-FORMLAYOUT2";
CREATE OR REPLACE TRIGGER "trigger-FORMLAYOUT"
 BEFORE
  INSERT
 ON FORMLAYOUT
REFERENCING NEW AS NEW OLD AS OLD
 FOR EACH ROW
begin
    SELECT autoid_sequence.nextval INTO :new.autoid FROM dual;
end;
--3.插入数据
insert into FORMLAYOUT(id,name)
select id,name from othertable
select * from FORMLAYOUT
--atuoid id name


 

posted @ 2012-10-29 12:48  天生我豺  阅读(394)  评论(0编辑  收藏  举报