PHP-MySQL: Apagar registros em 2 tabelas com apenas 1 comando DELETE

Vamos a mais um post, com uma dica bem legal.

Precisei esses dias excluir os registros de 2 tabelas que continham o mesmo campo.

IMPORTANTE: AS 2 tabelas devem possuir dados para o DELETE funcionar.

Vamos a solução!

Modelo da estrutura das tabelas:

Tabela: Produtos
id_produto
titulo_produto
descricao_produto

Tabela: Fotos
id_foto
descricao_foto
id_produto

Podemos observar que as tabelas tem em comum o campo id_produto. Baseando-se nessa informação vamos montar nosso script.

O comando abaixo simplifica a forma de exclusão dos dados, ao invés de usar DELETEs separados.

<?
$ID = (int) $_POST['id_produto'];
$sql = "DELETE produtos.*, fotos.*
        FROM produtos, fotos
        WHERE produtos.id_produto = '".$ID."'
        AND fotos.id_produto = '".$ID."'";
mysql_query($sql) or die(mysql_error());
?>

outro exemplo:

$sql = 
mysql_query("
    DELETE FROM tabela1, tabela2, tabela3
    USING tabela1
    INNER JOIN tabela2 INNER JOIN tabela3
    WHERE tabela1.id = tabela2.id
    AND tabela2.id = tabela3.id
    AND tabela1.id = '$id'");

Até a próxima!

2 comentários em “PHP-MySQL: Apagar registros em 2 tabelas com apenas 1 comando DELETE

  • 14 de maio de 2013 em 7:23
    Permalink

    Esse código é muito importante,
    com certeza um dia ou outro iremos precisar
    Parabéns pela dica

    Resposta
  • 26 de novembro de 2013 em 16:47
    Permalink

    Muito bom! me ajudou muito.
    Parabéns pela dica.

    Resposta

Deixe uma resposta para André Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *