Ver Mensaje Individual
  #20 (permalink)  
Antiguo 03/02/2010, 14:11
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 delete or update a parent row: a foreign key constraint fails

Sigo, porque recién me percato de lo que decía exactamente el primer post.

Fijate que la propia creación de esa tabla ya te da la pauta cuando dice:
Código MySQL:
Ver original
  1. CONSTRAINT `maquina_ibfk_1` FOREIGN KEY (`idModeloMaquina`) REFERENCES `modeloMaquina` (`idModeloMaquina`),
  2. CONSTRAINT `maquina_ibfk_2` FOREIGN KEY (`idAreaMaquina`) REFERENCES `areaMaquina` (`idAreaMaquina`),
  3. CONSTRAINT `maquina_ibfk_3` FOREIGN KEY (`idProveedor`) REFERENCES `proveedor` (`idProveedor`),
  4. CONSTRAINT `maquina_ibfk_4` FOREIGN KEY (`idOS`) REFERENCES `os` (`idOS`),
  5. CONSTRAINT `maquina_ibfk_5` FOREIGN KEY (`idCPU`) REFERENCES `cpu` (`idCPU`),
  6. CONSTRAINT `maquina_ibfk_6` FOREIGN KEY (`idEstado`) REFERENCES `estado` (`idEstado`)
Esto nos indica que hay seis dependencias de este registro a seis tablas diferentes (modeloMaquina, areaMaquina, proveedor, os, cpu, estado).
El problema es que no puedes importar un registro a esta tabla, si al menos uno de los valores que aparecen en ese registro en esos seis (6) campos no se encuentra ya en su tabla.
Esa es la función de esa restricción: Que no se puedan ingresar valores inválidos o nulos en campos declarados como FK...

Simplificando: Si quieres importar esa tabla, primero tienes que aseguarte de importar los valores de las tablas que corresponden a modeloMaquina, areaMaquina, proveedor, os, cpu, estado.
Caso contrario, el sistema no te dejará ingresarlos porque violan la integridad referencial.

¿Se entiende el problema?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)