--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