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:
SELECT
as linhas baseado em alguma condiçãoWHERE
na tabela principal.DELETE
as linhas da tabela princiapl basada nas mesmas condições.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
.