Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Löschen aus mehreren Tabellen mit fremden Einschränkungen

Am einfachsten wäre es, aus jeder Tabelle einzeln zu löschen:

-- Remove all connections from A which reference
-- the B-rows you want to remove
DELETE FROM A_has_B
WHERE B_id IN (1,2,4);

-- Remove all connections from C which reference
-- the B-rows you want to remove
DELETE FROM C_has_B
WHERE B_id IN (1,2,4);

-- Finally remove the B-rows
DELETE FROM B
WHERE B_id IN (1,2,4);

MySQL erlaubt Ihnen auch, aus mehreren Tabellen in einer Anweisung zu löschen. Es gibt jedoch keine Möglichkeit, die Reihenfolge der Löschungen zu steuern. Aus dem Handbuch :