BEFORE DELETE TRIGGER Problem

klaussp

Grünschnabel
Hallo Zusammen,

ich habe folgende Aufgabenstellung bekommen, aber leider gehen mir die Ideen aus wie man das lösen könnte:

"Der Durchschnittspreis für ”Mac650“ muss über dem für ”PC486“ liegen. Schreiben Sie nur eine Überwachung für das Löschen von Tupeln aus der Angebotstabelle."

Mein letzter Ansatz ist, hat aber unten stehendes Problem:
Code:
CREATE TRIGGER MACPC_DELETE BEFORE DELETE ON Angebot 
REFERENCING OLD AS o 
FOR EACH ROW MODE DB2SQL 
WHEN ((o.Warenbezeichnung='Mac650' AND (SELECT AVG(SELECT Preis from Angebot WHERE Warenbezeichnung='Mac650') < (SELECT AVG(Preis) from Angebot a WHERE Warenbezeichnung='PC486')))
SIGNAL SQLSTATE '75002' ('Achtung bla bla');

Problem:
Wie finde ich den neuen durchschnittlichen Preis von Mac650 raus? Bei einem DELETE Trigger kann man ja nur auf die Menge OLD referenzieren, nicht auf NEW. Somit weis ich doch nicht wie die neue Menge, geschweige der Durchschnittspreis danach aussieht?!

Hat jemand eine Idee wie das noch funktionieren könnte?

Grüße, Klaus
 
Hab nochma drüber nachgedacht, kann eigentlich nur so sein das man solange löschen darf, wie der AVG(Mac...)>AVG(PC...) ist. Sobald das unterschritten ist, kann fortan nicht mehr gelöscht werden, es ist aber möglich das der AVG(Mac...) den anderen unterschreitet!
 
Es ist doch notwendig zu prüfen wie der Durchschnitt nach dem Löschen eines Tupels aussehen würde! Das löschen soll in dem Fall also verhindert werden...

Hat jemand eine Idee wie das funktionieren könnte?

Wie kommt man den bitteschön in diesem Fall an das zu löschende Tupel? Geht das irgendwie?

Grüße, Klaus
 
Zurück