DELETE FROM usuario, fone, usuario_tem_fone, documento, responsavel, usuario_tem_responsavel WHERE usuario.id_usuario = usuario_tem_fone.usuario_id_usuario AND usuario.id_usuario = documento.usuario_id_usuario AND usuario.id_usuario = usuario_tem_responsavel.usuario_id_usuario AND usuario_tem_fone.fone_id_fone = fone.id_fone AND usuario_tem_responsavel.responsavel_id_resp = responsavel.id_resp;
E o que ele faz com os relacionamentos, meu camarada?
As tabelas possuem constraints em foreign keys, pela forma como ele postou (usuario, fone, usuario_tem_fone).
O truncate vai esbarrar nestas constraints.
Aliás, a partir do momento em que ele colocou um WHERE na cláusula, significa que ele não quer apagar todas as tabelas, apenas remover registros.
W
wellingtonfoz
[quote=drsmachado]
vinigess:
da um
E o que ele faz com os relacionamentos, meu camarada?
As tabelas possuem constraints em foreign keys, pela forma como ele postou (usuario, fone, usuario_tem_fone).
O truncate vai esbarrar nestas constraints.
Aliás, a partir do momento em que ele colocou um WHERE na cláusula, significa que ele não quer apagar todas as tabelas, apenas remover registros.
Exatamente. Quero apagar um determinado registro e todas os outros que tem relacionamento (contraints FK), não quero apagar tudo com Truncate!
[drsmachado] Sabe o que está errado na sintaxe do meu post?
drsmachado
Se eu estiver certo, é o fato de estar colocando mais de uma tabela na cláusula. A cláusula delete só suporte 1 tabela por vez. Tente assim
Não é o que você quer fazer, é um caminho.
Crie Você está tentando remover os registros do usuário X. Assumindo que X = 34. Você precisa, primeiramente, apagar todos os registros do usuario nas tabelas de relacionamento, então, todos os registros do mesmo nas tabelas primárias.
Usando DELETE com INNER JOIN você consegue.