触发器-更新
需求:一张表的某个字段跟随另一张表的某个字段的值更新而更新
2张表 test001,test002


新建触发器,当更新test001中的D为某个值x时,test002中的D(不一定是D,也可以是C)也变成x
create or replace trigger Test02Tr
after update of D on test001
for each row
begin
update test002 t2 set t2.D = :new.D where exists (select *from test002 where :new.A = t2.A);
end test02Tr;
需要注意的地方 :new.字段表示的是在执行完某个更新操作后的那条数据记录,如果这里没有使用:new.字段而是使用 test001的话,则会报错:

错误sql:
create or replace trigger Test02Tr
after update of D on test001
for each row
begin
update test002 t2 set t2.D = :new.dwhere exists (select * from test002 ,test001 t1 where t1.A =t2.A);
end test02Tr;
最后,测试:
update test001 t1 set D='7'where t1.A='1';
执行完之后,2张表的D字段的值都是7


如有疑问或改进的地方请指出,共同进步!
4219

被折叠的 条评论
为什么被折叠?



