CREATE OR REPLACE TRIGGER "A_TRIG" AFTER INSERT OR UPDATE ON "A" FOR EACH ROW when (new.a<>old.a) declare begin UPDATE B SET b = :new.a end 这是我之前写的
突然想起来怎么写了....这是我写的最终版 CREATE OR REPLACE TRIGGER "FT"."TMATERIALPRICES_TRIG" AFTER INSERT OR UPDATE OF RETAILPRICE ON "FT"."TMATERIALPRICES" FOR EACH ROW declare begin IF :OLD.OBJID IS NULL THEN UPDATE FT.TMATERIALS SET MODIFYTIME=MODIFYTIME WHERE OBJID= :NEW.MATERIALID; ELSE UPDATE FT.TMATERIALS SET MODIFYTIME=MODIFYTIME WHERE OBJID= :OLD.MATERIALID; END IF; DECLARE BEGIN insert into tMaterialprices_sync (billid, syncnum) values (:new.objid,tMaterials_increase.nextval); END; end;
create or replace trigger test_a_update after update of a or insert on A begin merge into B using A on (a.id=b.id) when matched then update set B.b=A.a
when not matched then insert (b.b) values(a.a); end; end;
INSERT
OR UPDATE ON "A"
FOR EACH ROW
when (new.a<>old.a)
declare
begin
UPDATE B SET b = :new.a
end
这是我之前写的
CREATE OR REPLACE TRIGGER "FT"."TMATERIALPRICES_TRIG" AFTER
INSERT
OR UPDATE OF RETAILPRICE ON "FT"."TMATERIALPRICES"
FOR EACH ROW
declare
begin
IF :OLD.OBJID IS NULL THEN
UPDATE FT.TMATERIALS SET MODIFYTIME=MODIFYTIME WHERE OBJID= :NEW.MATERIALID;
ELSE
UPDATE FT.TMATERIALS SET MODIFYTIME=MODIFYTIME WHERE OBJID= :OLD.MATERIALID;
END IF;
DECLARE
BEGIN
insert into tMaterialprices_sync
(billid, syncnum)
values
(:new.objid,tMaterials_increase.nextval);
END;
end;
after update of a or insert
on A
begin
merge into B using A on (a.id=b.id)
when matched then
update
set
B.b=A.a
when not matched then
insert
(b.b)
values(a.a);
end;
end;