Ver Mensaje Individual
  #5 (permalink)  
Antiguo 15/02/2017, 11:45
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Funcion Delete en 5 tablas en 1 consulta

Hola de nuevo sebandrescc2:

Me da gusto que haya funcionado el delete para tu caso, pero con respecto a tu pregunta de por qué no es recomendable hacer este tipo de delete's múltiples, aquí hay algunas razones.

1. Rendimiento: cualquier sentencia tipo JOIN (INNER, LEFT O RIGTH) pueden ser muy tardadas si manejas tablas con muchos registros y no tienes un correcto uso de los índices. Tal vez con pocos no sea notorio, pero en la práctica debes tener mucho cuidado de esto.

2. Integridad: Esto va de la mano en realidad con el diseño, si tienes un correcto uso de referencias en tus tablas, puedes simplemente hacer DELETE's en cascada, eliminando un registro PADRE y que automáticamente se eliminen todos los registros HIJOS, sin necesidad de hacer tantos JOINS. Puedes checar un ejemplo bastante simple en esta liga

Sin embargo, como menciona la liga, la parte de los DELETE's en cascada sólo aplican a tablas timo InnoDB, si utilizas tablas tablas MyISAM entonces no puedes hacerlo.

3. Simplicidad. Aunque MySQL te permita hacer DELETE's múltiples, no es común verlo. Lo típico es ver 5 delete's sencillos, uno por cada tabla a tener 1 solo DELETE como es este caso, y el mantenimiento también puede resultar más simple.

Sin embargo, esto es cuestión de gustos, como dice el dicho, hay muchas formas de matar a una mosca, pero utilizar una pistola puede resultar demasiado, tú tienes la última palabra en esto.

Saludos
Leo