:: DEVELOPER ZONE
Weil MySQL keine Sub-Selects oder die Benutzung von mehr als einer Tabelle
im DELETE-Statement unterstützt, müssen Sie folgenden Ansatz wählen,
um Zeilen aus zwei verwandten Tabellen zu löschen:
Wählen (SELECT) Sie die Zeilen auf der Grundlage einer
WHERE-Bedingung in der Haupt-Tabelle aus.
Löschen (DELETE) Sie die Zeilen in der Haupt-Tabelle auf der
Grundlage derselben Bedingung.
Löschen Sie die Zeilen aus der verwandten Tabelle, bei denen die verwandte
Spalte in den ausgewählten Zeilen vorkommt (DELETE FROM verwandte_tabelle WHERE verwandte_spalte IN (ausgewaehlte_zeilen).
Wenn die Gesamtzahl von Zeichen in der Anfrage mit verwandte_spalte
mehr als 1.048.576 beträgt (der Vorgabewert von max_allowed_packet,
sollten Sie sie in kleinere Teile aufspalten und mehrfache
DELETE-Statements ausführen. Wahrscheinlich geht das Löschen
(DELETE) am Schnellsten, wenn Sie nur 100 bis 1000
verwandte_spalte-Kennungen pro Anfrage löschen, wenn
verwandte_spalte ein Index ist. Wenn verwandte_spalte kein
Index ist, ist die Geschwindigkeit unabhängig von der Anzahl von Argumenten
in der IN-Klausel.
© 1995-2005 MySQL AB. All rights reserved.
