Ich habe das Problem, daß für eine Übergangszeit zwei Datenbankschemata parallel laufen sollen, die beide aktiv sind, d.h. einige Applikationen greifen noch auf das alte, die neueren auf das neue Schema zu.
Daher kommt es - vereinfacht - zu folgender Situation:
Trigger auf Tabelle A, daß bei Update ein entsprechendes Update von Tabelle B gemacht wird.
Trigger auf Tabelle B, daß bei Update ein entsprechendes Update von Tabelle A gemacht wird.
Leider scheint mir da jedoch eine Endlosschleife zu kommen.
Hier die beiden Trigger:
create or replace TRIGGER trg_sync_cul_update
after update
on core_user_login
for each row
begin
update passwort_dev
set passwort = :new.password
where
code = :old.user_id;
end;
create or replace TRIGGER trg_sync_passwort_update
after update
on passwort_dev
for each row
begin
update core_user_login
set
login = :new.name,
password = :new.passwort
where user_id = :new.code;
end;
Damit kriege ich jedoch einen Oracle-Fehler, lt. Oracle-KB deswegen, weil Trigger A feuert B feuert A und Fehler, weil Tabelle A gerade geändert wird.
Ich habe einen Workaround, bei dem die Trigger sich per übergebenem Extra-Wert verständigen, aber dazu muß ich jeder beteiligten Tabelle ein Extra-Feld spendieren und es erscheint mir auch zu gefummelt...
Jemand einen Vorschlag?