MySQL: DELETE über mehrere Tabellen
AllesMeins
- datenbank
0 Axel Richter0 AllesMeins0 wahsaga0 Axel Richter
Hiho,
ich bastele an einem kleinen digitalen Sammelkartenspiel. Ich habe eine Tabelle in der die Karten eingetragen sind und in einer zweiten Tabelle zu jeder Karte mehrere Einträge mit Eigenschaften der Karte. Die Karten besitzen jeweils eine ID, die Eigenschaften sind über die ID den Karten zugeordnet. In der Kartentabelle gibt es ausserdem einen Eintrag über den Besitzer der Karte. Nun möchte ich eine grössere Menge Karten von einem Besitzer (inklusive der dazugehörigen Eigenschaften Einträge) löschen. Ist das in einem SQL Statement machbar?
Laut MySQL Manual gibt es ja eine Methode um in mehreren Tabellen zu löschen. Erschwerend kommt hinzu das das ganze auf mySQL 4.0.18 laufen müsste, sprich ich kein JOIN verwenden kann, das genau dies leisten würde. Fällt euch irgend eine Methode ein mit der dies ginge?
Grüsse
Marc
Hallo,
Laut MySQL Manual gibt es ja eine Methode um in mehreren Tabellen zu löschen.
Ja. Das Multi-Tabellen-Löschformat wird ab MySQL 4.0.0 unterstützt.
http://dev.mysql.com/doc/mysql/de/delete.html
Welche Probleme hast Du damit?
viele Grüße
Axel
hiho,
ich hatte mein Problem ja schon beschrieben: Ich habe in einer Tabelle die Karten mit ID und Besitzer und in einer zweiten die KartenIDs und Eigenschaften dazu. Nun weiss ich nicht wie ich es schaffe aus Tabelle 1 alle Karten mit besitzer "xyz" zu löschen und dazu noch aus Tabelle 2 alle Eigenschaften die zu den Karten gehören.
Grüsse
Marc
hi,
ich hatte mein Problem ja schon beschrieben: [...]
und welcher teil davon besteht weiterhin, nachdem du die verlinkte seite _durchgelesen_ hast?
gruß,
wahsaga
Hallo,
ich hatte mein Problem ja schon beschrieben: Ich habe in einer Tabelle die Karten mit ID und Besitzer und in einer zweiten die KartenIDs und Eigenschaften dazu. Nun weiss ich nicht wie ich es schaffe aus Tabelle 1 alle Karten mit besitzer "xyz" zu löschen und dazu noch aus Tabelle 2 alle Eigenschaften die zu den Karten gehören.
In der Doku steht als Beispiel:
DELETE t1,t2 FROM t1,t2,t3 WHERE t1.id=t2.id AND t2.id=t3.id
Du hast t1 mit ID und Besitzer und t2 mit KartenID und Eigenschaften.
Was macht:
DELETE t1,t2 FROM t1,t2 WHERE t1.ID=t2.KartenID AND t1.Besitzer='xyz'
?
viele Grüße
Axel
Hiho,
das funktioniert nicht wenn in Table2 keine Eigenschaften für die entsprechende Karte stehen.
Grüsse
Marc