A表结构:
NUM,NAME用触发器实现A表 update更新的时候,同时把B表的NUM,NAME 也同时更新。
但是要满足条件:就是A.num是最大的。(也就是要对A表进行SELECT查询)
触发器写在A表里面.这个触发器怎么写?
NUM,NAME用触发器实现A表 update更新的时候,同时把B表的NUM,NAME 也同时更新。
但是要满足条件:就是A.num是最大的。(也就是要对A表进行SELECT查询)
触发器写在A表里面.这个触发器怎么写?
create trigger cascade_update
after
update of NUM,NAME
on A
for each row
begin
select max(NUM) as NUM,NAME from A
update B
set B.NUM=:new.NUM,B.NAME=:new.NAME
where B.foreignkey=:old.foreignkey //就是A表和B表相关联的字段,B得外键
end;应该有些问题,呵呵!
A 表结构:
N1,P1,S1,R1,C1
B 表结构:
N1,P1,S1A表和B表关联的条件是:
A.N1=B.N1 AND A.P1=B.P1比如A表UPDATE更新的时候,
要判断一下:这条更新的数据R1和C1的值是否是A表里面最大的.
只有满足这个条件,再去关联B表去更新B.S1.求解这个触发器,谢谢!
CREATE OR REPLACE TRIGGER TRI_TEST BEFORE UPDATE ON A FOR EACH ROW
DECLARE
MAXR1 NUMBER;
MAXC1 NUMBER;
BEGIN
SELECT MAX(R1) INTO MAXR1 FROM A;
SELECT MAX(C1) INTO MAXC1 FROM A;
IF (:NEW.R1>MAXR1) AND (:NEW.C1>MAXC1) THEN
UPDATE B
SET B.S1=:NEW.S1
WHERE B.N1=:NEW.N1 AND B.P1=:NEW.P1;
END IF;END;
yf520gn
应该改成after触发器吧,因为是在A表更新之后才对B进行更新的
即是:
CREATE OR REPLACE TRIGGER TRI_TEST AFTER UPDATE ON A FOR EACH ROW