Hallo zusammen,
ich habe vereinfacht folgende Tabellen (Mysql 5.5 - Innodb):
verlauf
id int (primary key)
beleg
id int (primary key)
posten
verlauf_id int foreign key (id) references verlauf
beleg_id int foreign key (id) references beleg
verlauf und beleg sind also über posten verbunden und posten hat einen zusammengesetzten primary key aus zwei fremdschlüsseln.
Nun möchte ich z.B. Datensatz x aus beleg und alle damit zusammenhängende Sätze aus posten und verlauf löschen.
Wenn ich nun folgendes ausführe:
DELETE p,v,b FROM posten p
JOIN verlauf v ON p.verlauf_id = v.id
JOIN beleg b ON b.id = p.beleg_id
WHERE p.beleg_id = ‚7‘
Dann schlägt die Abfrage mit „#1451 - Cannot delete or update a parent row: a foreign key constraint fails (cystore
.posten
, CONSTRAINT posten_ibfk_2
FOREIGN KEY (beleg_id
) REFERENCES beleg
(id
))“
fehl.
Wenn ich aber „WHERE p.beleg_id = ‚7‘“ weg lasse funktioniert es, nur dass dann halt alle Datensätze gelöscht werden.
Hat da einer eine Lösung oder Idee für mich?
Viele Grüße
Friendly