表A(a1,a2,a3,a4,a5)B(b1,b2,b3) C(c1,c2,c3) a4是条件
想通过触发器实现我在A表里添加一条记录的时候 a4进行判断如果条件是B 我就把a1,a2,a3的值添加到B(b1,b2,b3)里面 同理 如如果a4的条件是c 我就把刚才添加的这条记录在c表里面追加一条 a1 a2 a3 和 b1 b2 b3 c1 c2 c3字段一致
想通过触发器实现我在A表里添加一条记录的时候 a4进行判断如果条件是B 我就把a1,a2,a3的值添加到B(b1,b2,b3)里面 同理 如如果a4的条件是c 我就把刚才添加的这条记录在c表里面追加一条 a1 a2 a3 和 b1 b2 b3 c1 c2 c3字段一致
create trigger tri_test
on a
for insert
as
begin
insert b select a1,a2,a3 from inserted where a4='B'
insert c select a1,a2,a3 from inserted where a4='C'end
on a
for insert
as
begin
insert b(b1,b2,b3) select a1,a2,a3 from isnerted where a4='B'
insert c(c1,c2,c3) select a1,a2,a3 from isnerted where a4='C'
end
go
on a
for insert
as
begin
insert b select a1,a2,a3 from inserted where a4='B'
else
insert c select a1,a2,a3 from inserted where a4='C'end
on a
for insert
as
begin
insert b(b1,b2,b3) select a1,a2,a3 from inserted where a4='B'
insert c(c1,c2,c3) select a1,a2,a3 from inserted where a4='C'end
as
begin
insert into b select a1,a2,a3 from inserted where a4 = '条件B'
insert into c select a1,a2,a3 from inserted where a4 = '条件c'
end
after inserton table1
for each rowwhen a4 = '条件B'
begin
insert b(b1,b2,b3) select a1,a2,a3 from inserted
endwhen a4 = '条件c'
begin
insert into c select a1,a2,a3 from inserted
end
end;好久没用Oracle了,也不知道对不对
after insert
on tb
for each row
when :new.a4 = '条件B'
begin
insert b(b1,b2,b3) values(:new.a1,:new.a2,:new.a3);
end
when :new.a4 = '条件c'
begin
insert into c(c1,c2,c3) values(:new.a1,:new.a2,:new.a3);
end
end trig;
create table B (b1 int,b2 int,b3 int) ;
create table C (c1 int,c2 int,c3 int) ;create or replace trigger tri_a
after insert
on A
REFERENCING new AS newdata
for each row
begin
if (:newdata.a4 =1) then
insert into b(b1,b2,b3) values( :newdata.a1,:newdata.a2,:newdata.a3 );
elsif (:newdata.a4 =2) then
insert into c(c1,c2,c3) values( :newdata.a1,:newdata.a2,:newdata.a3 );
end if;
end tri_a;insert into a values(1,1,1,1,1)
select * from b
/*
B1 B2 B3
1 1 1 1*/insert into a values(2,2,2,2,1)
select * from c
/*
C1 C2 C3
1 2 2 2*/