Update trigger

Status
Niet open voor verdere reacties.

kohltje

Gebruiker
Lid geworden
17 sep 2010
Berichten
45
Ola,

ik heb een trigger geschreven maar deze doet niet precies wat ik bedoel. Wel in grote lijnen maar net dat ene stukje niet:confused:
Eerst een korte uitleg:

de trigger wordt afgevuurd als in tabel B de kollom tekenen_budgethouder_1 gevuld wordt met een 1 of een 0.
Als dit gebeurd is de actie die moet worden uitgevoerd dat het veld count_tek_1 in tabel A wordt geupdate met een optelling van de velden tekenen_budgethouder_ 1 tot en met 9. Dus als al deze velden gevuld zijn met een 1 dan staat er een 10 in count_tek_1. Nu is het probleem dat hij bij het updaten van 1 veld, alle rijen vult bij count_tek_1 terwijl ik alleen wil dat hij dit doet voor de rij die ik geupdate heb.
Als ik namelijk bij tabel B, 1 veld update op een regel moet dit coresponderen met de regel in tabel A (er ligt een koppeling op KSTP_CODE) en niet op ALLE rijen in tabel A:(
Iemand enig idee?

Hieronder de trigger die ik geschreven heb.


CREATE OR REPLACE TRIGGER test
AFTER UPDATE ON b FOR EACH ROW
WHEN (OLD.TEKENEN_BUDGETHOUDER_1 <> NEW.TEKENEN_BUDGETHOUDER_1)

BEGIN
IF :NEW.TEKENEN_BUDGETHOUDER_1=0 THEN

UPDATE A
SET

COUNT_TEK_1 = :NEW.TEKENEN_BUDGETHOUDER_1 + :OLD.tekenen_budgethouder_2
+ :OLD.tekenen_budgethouder_3 + :OLD.tekenen_budgethouder_4
+ :OLD.tekenen_budgethouder_5 + :OLD.tekenen_budgethouder_6
+ :OLD.tekenen_budgethouder_7 + :OLD.tekenen_budgethouder_8
+ :OLD.tekenen_budgethouder_9 + :OLD.tekenen_budgethouder
WHERE :NEW.TEKENEN_BUDGETHOUDER_1= '0'


;
END if;

IF :NEW.TEKENEN_BUDGETHOUDER_1=1 THEN

UPDATE A
SET

COUNT_TEK_1 = :NEW.TEKENEN_BUDGETHOUDER_1 + :OLD.tekenen_budgethouder_2
+ :OLD.tekenen_budgethouder_3 + :OLD.tekenen_budgethouder_4
+ :OLD.tekenen_budgethouder_5 + :OLD.tekenen_budgethouder_6
+ :OLD.tekenen_budgethouder_7 + :OLD.tekenen_budgethouder_8
+ :OLD.tekenen_budgethouder_9 + :OLD.tekenen_budgethouder
WHERE :NEW.TEKENEN_BUDGETHOUDER_1= '1'


;

END IF;
END;
/
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan