Deletando Linhas de Tabelas Relacionadas


Como o MariaDB não suporta subconsultas (antes da versão 4.1), enm o uso de mais de uma tabela na instruçao DELETE (antes da versão 4.0), você deve usar a seguinte abordagem para deletar linhas de 2 tabelas relacionadas:

  1. SELECT as linhas baseado em alguma condição WHERE na tabela principal.
  2. DELETE as linhas da tabela princiapl basada nas mesmas condições.
  3. DELETE FROM tabela_relacionada WHERE coluna_relacionada IN (linhas_selecionadas).

Se o número total de caracteres na consulta com colunas_relacionadas é maior que 1,048,576 (o valor padrão de max_allowed_packet, você deve separá-lo em duas partes menores e executar múltiplas instruções DELETE. Você provavelmente obterá o DELETE mais rápido apenas delatando 100-1000 ids de colunas_relacionadas por consulta se colunas_relacionadas é um índice. Se colunas_relacionadas não é um índice, a velocidadi é independente do número de argumentos na cláusula IN.

Retornar