Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Auxilio! Cannot add or update a child row: a foreign key constraint fails

Estas en el tema de Auxilio! Cannot add or update a child row: a foreign key constraint fails en el foro de Bases de Datos General en Foros del Web. El programador con que trabajo me dice que va a insertar datos y le sale ese error... No entiendo porqué, lo peor es que esa ...
  #1 (permalink)  
Antiguo 09/12/2011, 10:37
 
Fecha de Ingreso: noviembre-2011
Mensajes: 10
Antigüedad: 12 años, 5 meses
Puntos: 0
Auxilio! Cannot add or update a child row: a foreign key constraint fails

El programador con que trabajo me dice que va a insertar datos y le sale ese error...

No entiendo porqué, lo peor es que esa tabla tiene una relación con otra tabla, al igual que dicha tabla con otro, a la cuál se le esta consultando de la misma manera... igual! y no hay problemas!

Ahora he tenido que dañar mi base datos para que funcione. Es decir había una tabla estudiante y una tabla acudiente (como el tutor del estudiante), la cuál identificaba de quién era el acudiente por medio del ID del estudiante.

En un formulario, se llenaban los datos del estudiante y el acudiente, luego con la misma acción se enviaban los datos de estudiante a una tabla y los de acudiente a la otra.

Pero ahora cuando se va a hacer eso. Sale ese error! que maldición! para solucionarlo he tenido que meter en estudiante el id del acudiente, como un ciclo y eso está feo así... que hago?

El programador me ha dado este codigo, a ver si me pueden ayudar.

$SQLX = sprintf("Insert into estudiantes(nombreestudiante, cedulaestudiante, contraseniaestudiante, idgrupo, urlfotoestudiante, iddetalleestados) VALUES('%s','%s','%s','%s','%s','%s')",
mysql_real_escape_string($nombre),
mysql_real_escape_string($cedula),
mysql_real_escape_string($pass),
mysql_real_escape_string($grupo),
mysql_real_escape_string($name),
mysql_real_escape_string(1));
$res = $db->consulta($SQLX);

Les agradecería un moooonton su ayuda.
  #2 (permalink)  
Antiguo 09/12/2011, 10:42
Avatar de 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: Auxilio! Cannot add or update a child row: a foreign key constraint fails

En esencia, ese mensaje de error se da en una sola circunstancia: Cuando se intenta insertar un registro en el cual, al menos uno de los campos corresponde a una FK, pero el valor que se pretende insertar no existe aún en la tabla referenciada.
Es el único caso donde puede aparecer.
Es decir que el valor en el INSERT (infiero) que estás tratando de insertar en "IDGRUPO" o en "IDDETALLEESTADOS" un valor que no existe en sus respectivas tablas.

Revisa que las tablas se estén cargando en el orden correcto.

Nota: Modificar chapuceramente una base para "parchar" un error que no has logrado resolver no sólo es una mala práctica: Es un gravísimo error.
Antes de hacer cosas como esa trata de revisar las cosas hasta localizar el problema. Perderás menos tiempo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 09/12/2011, 11:20
 
Fecha de Ingreso: noviembre-2011
Mensajes: 10
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Auxilio! Cannot add or update a child row: a foreign key constraint fails

No si definitivamente ese es mi desespero, dañar la estructura tan hermosa que hice, lol! pero es cierto, sentía que estaba ensuciando todo mi trabajo.

Pero no tienes idea de que me dí cuenta. Era lo más tonto. La relación no estaba hecha... era eso. Y es raro porque no tengo idea como se me paso eso. Es posible que se me borre una relación? un día tuve la impresión de que eso me paso, pero no estoy seguro. Así que ahora no se, pero se me pudo pasar, todo puede pasar.

Gracias por tu respuesta.
  #4 (permalink)  
Antiguo 09/12/2011, 12:10
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Auxilio! Cannot add or update a child row: a foreign key constraint fails

Antes de hacer nada revisa bien tus relaciones, tus tablas y todo, de que se borre una relacion asi de la nada es poco probable que pase a menos que la hayas borrado por error...

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:03.