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

Excluindo de uma tabela MySQL com restrições de chave estrangeira


Infelizmente, a exclusão automática que você acha que deveria acontecer não acontece. Você precisaria excluir manualmente as linhas da Tabela B que contêm o ID da linha da Tabela A que deseja remover.

Tente adicionar ON DELETE CASCADE para sua definição de coluna de chave estrangeira na Tabela B.

Se você estiver usando o Hibernate, ou alguma outra ferramenta ORM, ele teria um mecanismo de "cascata" que lidaria com isso automaticamente. Mas aqui, como você está interagindo diretamente com o banco de dados, você deve ter em mente que uma linha não pode ser excluída se o ID dessa linha existir em qualquer outra tabela como chave estrangeira (como no seu caso, a chave primária de A existe em algumas das linhas em B). A menos que você especifique a propriedade ON DELETE CASCADE.