HoudiniCH: Trigger Problem MySQL

Beitrag lesen

Hallo zusammen

Folgendes problem:

2 Tabellen:

auftrag

id|totalMannStunden|totalMaschinenStunden

buchung

id|effMannStunden|effMaschinenStunden|auftrag_id

z.B Auftrag: Holztisch

id|istMannStunden|istMaschinenStunden 1 | 0 | 0

Nun kommt eine Buchung hinzu, ausgelöst durch ein Formular einer Webapplikation

Buchung

id|effektivMannStunden |effektivMaschinenStunden|auftrag_id 1 | 2.5 | 2.5|1

Jetzt soll über einen Trigger die Tabelle Auftrag upgedatet werden... Bei dem 1. Datensatz geht es, wenn ich jedoch einen 2. Datensatz (Auftrag) hinzufüge und dort einen Rapport verbuche, passiert nix...

Trigger:

DROP TRIGGER IF EXISTS rts.tri_buchung_after_insert;

DELIMITER //

CREATE TRIGGER tri_buchung_after_insert

AFTER insert 

ON buchung 

FOR EACH ROW

BEGIN

UPDATE auftrag

SET auftrag.istMannstunden = (new.effektivMannStunden + auftrag.istMannstunden), auftrag.istMaschinenStunden = (new.effektivMaschinenStunden + auftrag.istMaschinenStunden) 
WHERE new.auftrag_id = auftrag.id;

             
END//


DELIMITER ;

Auch so hab ich es versucht, jedoch löscht er alle istStunden bei den anderen Aufträgen und updatet nur den aktuellen:

DROP TRIGGER IF EXISTS rts.tri_buchung_after_insert;

DELIMITER //

CREATE TRIGGER tri_buchung_after_insert

AFTER update

ON buchung

FOR EACH ROW

BEGIN



UPDATE auftrag

SET auftrag.istMannStunden = (select sum(effektivMannStunden) from buchung where new.`auftrag_id` = auftrag.id),  -- new.`effektivMannStunden` + auftrag.istMannstunden
			    auftrag.istMaschinenStunden = (select sum(effektivMaschinenStunden) from buchung where new.`auftrag_id` = auftrag.id);

 END//

 DELIMITER ;

Danke für eure Hilfe