Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Excluindo de várias tabelas com restrições estrangeiras


A maneira mais simples seria excluir de cada tabela 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);

O MySQL também permite que você exclua de várias tabelas em uma instrução. Mas não há como controlar a ordem das exclusões. Do manual :