Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jackson Jorge

Deletar vários registros de tabelas ligadas

Recommended Posts

Qual a forma recomendada para executar a exclusão do registros de uma tabela e de outras tabelas ligadas a este registro? Segue abaixo o exemplo:

 

Tabela: EMPRESAS

id_empresa

nome_empresa

 

Tabela: VAGAS

id_vaga

id_empresa_vaga

detalhes_vaga

 

Tabela: VAGAS_INSCRICOES

id_vaga_insc

nome_candidato

 

Preciso saber se há alguma forma de eu informar apenas o ID da empresa para ser excluído a empresa e todas as vagas vinculadas à ela e todas as inscricoes vinculadas as respectivas vagas.

 

Sei que o tipo de tabela innoDB faz isso automaticamente, mas estas tabelas já estão no tipo MyIsan e não quero mudar com medo de dar falha em alguma coisa no sistema que já está operando e tem outras várias ligações.

 

Se puderem me ajudar eu agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

O problema é que tabelas MyISAM não tem chave estrangeira.

 

Jackson, não vejo outra forma a não ser com o auxilio de triggers. Vamos aguardar mais comentários.

Compartilhar este post


Link para o post
Compartilhar em outros sites
O problema é que tabelas MyISAM não tem chave estrangeira.

 

Não o sabia.

 

Como disse o Prog, uso de triggers pode ser uma solução.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Obrigado Motta, está meio confuso ainda para mim mas vou dar uma estudada... Por enquanto resolvi com uma gabiarrinha da seguinte forma....

 

DELETE FROM empresas WHERE id_empresa=$id;

DELETE FROM vagas_inscricoes WHERE id_vaga_insc=(SELECT id_vaga FROM vagas WHERE id_empresa_vaga = $id);

DELETE FROM vagas WHERE id_empresa_vaga=$id;

 

Funcionou beleza, mas como utilizo mysql_query no php, queria evitar 3 conexões apenas para executar uma rotina de exclusão e tentar fazer tudo em uma unica query, mas quem não tem cão, caça com gato.

 

Novamente obrigado pela força e caso apareça outras idéias ou eu consiga utilizar a passado aviso vocês... Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.