Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Mutating table problem, cause i am trying to change a table that triggered
- CREATE OR REPLACE TRIGGER saldo_financeiro
- AFTER UPDATE OF valorPat
- ON patrocinio
- REFERENCING OLD AS antigo NEW AS novo
- FOR EACH ROW
- BEGIN
- UPDATE patrocinio SET saldoPat = saldoPat + ( :novo.valorPat - :antigo.valorPat ) WHERE numEd = :novo.numEd AND codEv = :novo.codEv;
- UPDATE edicao SET saldoFinanceiroEd = saldoFinanceiroEd + ( :novo.valorPat - :antigo.valorPat ) WHERE numEd = :novo.numEd AND codEv = :novo.codEv;
- END;
- -- solution, using compound triggers
- CREATE OR REPLACE TRIGGER saldo_financeiro
- FOR UPDATE OF valorPat
- ON patrocinio
- COMPOUND TRIGGER
- BEFORE STATEMENT IS
- BEGIN
- UPDATE patrocinio SET saldoPat = saldoPat + ( :new.valorPat - :old.valorPat ) WHERE cnpjPat = :new.cnpjPat AND numEd = :new.numEd AND codEv = :new.codEv;
- END BEFORE STATEMENT;
- AFTER EACH ROW IS
- BEGIN
- UPDATE edicao SET saldoFinanceiroEd = saldoFinanceiroEd + ( :new.valorPat - :old.valorPat ) WHERE numEd = :new.numEd AND codEv = :new.codEv;
- END AFTER EACH ROW;
- END saldo_financeiro;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement