Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/10/2010, 06:31
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Borrar en cascada

Para que eso ocurra hay dos formas:
1) Si las tabllas son InnoDB y en las otras dos tablas su presencia es como FOREIGN KEY, simplemente hay que agregarles la cláusula ON DELETE CASCADE en su definición. ASí, simplemente le indicas a la tabla primaria que borre el ID, y las otras dos se borrarán solas.
2) Si no son InnoDB o bien no puedes modificar la estructura de la tabla, puedes usar DELETE a tres tablas:
Código MySQL:
Ver original
  1. DELETE FROM tabla1 T1
  2.     INNER JOIN tabla2 T2 ON T1.ID = T2.ID
  3.     INNER JOIN tabla3 T ON T1.ID = T3.ID
  4. WHERE T1.ID = valorbuscado;
Este método puede ser errático si las tablas son InnoDB y están declaradas las FK, porque el parser de MySQL es el que analiza la secuencia de borrado, y puede no respetar el orden que estamos poniendo aquí.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)