sql >> Base de Datos >  >> RDS >> Mysql

Eliminación de varias tablas con restricciones externas

La forma más sencilla sería eliminar de cada tabla individualmente:

-- 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 también le permite eliminar de varias tablas en una declaración. Pero no hay forma de controlar el orden de las eliminaciones. Del manual :