Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/12/2013, 14:06
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: Cannot add or update a child row: a foreign key constraint fails Al dejar

Cita:
pero el problema va cuando yo dejo un campo vacio uno de los campos en las que va la clave o llave foránea. sabiendo que yo esos campos los deje como NULL al crear mi tabla de la b.d.
Aclaremos un detalle, por las dudas, ya que mencionas que los inserts fallan cuando lo haces en la aplicación: Un campo es NULL cuando lo omites en el INSERT, o cuando le especificas NULL al valor correspondiente.
Además hay que recordar que NULL no es lo mismo que 'NULL'. El primero es el nulo, y el otro es una cadena de texto que dice "NULL", y para la base de datos no es lo mismo.
¿Qué significa esto?
Pues que si tienes una tabla, por ejemplo
TablaA(a, b, c, d, e)
donde el campo b puede ser nulo, no es lo mismo esto:
Código MySQL:
Ver original
  1. INSERT INTO A VALUES(1, NULL, 3, 4)
que esto:
Código MySQL:
Ver original
  1. INSERT INTO A VALUES(1, 'NULL', 3, 4)
Ni tampoco eso:
Código MySQL:
Ver original
  1. INSERT INTO A VALUES(1, '', 3, 4)
El primer caso está bien, el segundo podría dispara un error de tipo de dato, y el tercero dispararía un error si el campo "b" fuese FK, porque el espacio vacío no es un NULL.

¿Cuál es la forma que usas tu para definir NULL, según queda armado por programación?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)