Hi,
habe folgendes Problem, vielleicht kann mir da jemand auf die Sprünge helfen:
Ich habe folgende TAbelle:
id name parentId
1 aaa 0
2 bbb 0
3 ccc 1
10 eee 3
11 ddd 3
12 fff 3
So nun möchte ich einen Trigger, der es ermöglicht, dass wenn eine Zeile gelöscht in alle Zeilen geschaut wird und die parentId durch die parentId der gelöschen Zeile ersetzt wird. Aber nur dann wenn die parentId der Zeile die der id der gelöschten Zeile entspricht.
Also nix anderes als Dereferenzieren.
Dachte mir das so:
CREATE OR REPLACE TRIGGER msystem.remove_sub_menu
AFTER DELETE
ON msystem.apps
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
tmp DATE;
BEGIN
UPDATE apps
SET id = :OLD.parent_id
WHERE id = :OLD.menu_id;
EXCEPTION
WHEN OTHERS
THEN
-- Consider logging the error and then re-raise
RAISE;
END remove_sum_menu;
/
Klappt aber net, weil der Trigger noch aktiv ist, da kann man dann scheinbar nicht in die Tabelle schreiben.
Kann mir da jemand auf die Sprünge helfen?
Grüße Oli