Hallo,
ich habe folgende Tabellen
tabelle1(spalte1 NUMBER);
tabelle2(spalte2 NUMBER);
tabelle 1 hat einen AFTER-insert trigger der in tabelle2 schreiben soll:
create or replace trigger tabelle1_trg
after insert on tabelle1
for each row
declare
begin
insert into tabelle2(spalte2) values(:new.spalte1);
end;
soweit kein problem.
jetzt hab ich allerdings in tabelle2 einen BEFORE-insert trigger, der tabelle1 abfragen soll:
create or replace trigger tabelle2_trg
before insert on tabelle2
for each row
declare
begin
select count(*) into :new.spalte2 from tabelle1;
end;
jedes mal,. wenn ich jetzt versuche, einen Insert in Tabelle1 zu machen, bekomme ich einen Mutating-Trigger-Error. Wieso ist das so? Nachdem ich in Tabelle1 ohnehin einen AFTER-Insert mache, gehe ich davon aus, das die Tabelle wieder selektierbar sein müsste ...
ist sie aber nicht!
wie muss ich mein konzept ändern, damit das funktioniert?
die folgende funktionalität soll dabei erhalten bleiben:
*) bei einem insert in tabelle1 soll ein insert in tabelle2 gemacht werden
+) wenn ein insert in tabelle2 gemacht wird, soll der :new-record mit werten aktualisiert werden, die aus tabelle1 ermittelt werden.
soweit mal.
mfg,
guni
ich habe folgende Tabellen
tabelle1(spalte1 NUMBER);
tabelle2(spalte2 NUMBER);
tabelle 1 hat einen AFTER-insert trigger der in tabelle2 schreiben soll:
create or replace trigger tabelle1_trg
after insert on tabelle1
for each row
declare
begin
insert into tabelle2(spalte2) values(:new.spalte1);
end;
soweit kein problem.
jetzt hab ich allerdings in tabelle2 einen BEFORE-insert trigger, der tabelle1 abfragen soll:
create or replace trigger tabelle2_trg
before insert on tabelle2
for each row
declare
begin
select count(*) into :new.spalte2 from tabelle1;
end;
jedes mal,. wenn ich jetzt versuche, einen Insert in Tabelle1 zu machen, bekomme ich einen Mutating-Trigger-Error. Wieso ist das so? Nachdem ich in Tabelle1 ohnehin einen AFTER-Insert mache, gehe ich davon aus, das die Tabelle wieder selektierbar sein müsste ...
ist sie aber nicht!
wie muss ich mein konzept ändern, damit das funktioniert?
die folgende funktionalität soll dabei erhalten bleiben:
*) bei einem insert in tabelle1 soll ein insert in tabelle2 gemacht werden
+) wenn ein insert in tabelle2 gemacht wird, soll der :new-record mit werten aktualisiert werden, die aus tabelle1 ermittelt werden.
soweit mal.
mfg,
guni
Comment