Ver Mensaje Individual
  #9 (permalink)  
Antiguo 14/12/2013, 15:38
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: 17 años
Puntos: 2658
Respuesta: Al querer borrar una entrada no puedo

No te permite cambiarle el nombre por un problema en el manejo interno de MySQL para ese caso: No cambia el nombre, sino que crea una columna con el nombre nuevo, copia los datos y trata de borrar la vieja columna. Entonces, en los hechos es lo mismo que intentar dropearla: No te dejará porque violaría la restricción de FK.
Empecemos por mirar lo que dices en un momento:
Cita:
No había caído en que answers tiene una foreign key de questions y esta a su vez tiene una foreign key de typequestions.
Se supone que en ese contexto lo que hay que hacer es borrar answers antes de questions. Lo que resulta difícil (y eso lo aclara el manual) es hacerlo usando JOIN, porque MySQL no lee la dependencia, sino que intenta realizar el borrado en base a un plan calculado on the fly, y puede estar haciéndolo al revés.
Ahora bien, para hacerte simple la tarea, hagamos esto: Agregale un ON DELETE CASCADE ON UPDATE CASCADE a la FK de answers.
Básicamente es eliminar la FK y volverla a crear. Luego de que lo hagas, si borras questions, se borrarán solas las answers dependientes.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 14/12/2013 a las 18:22