Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/10/2014, 05:02
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: Problema Clave foranea

Ese error puede producirse en ciertas circunstancias, sa saber:
1) Se intenta apuntar campo que será FK a un campo que no es PK en la tabla referida.
2) Las columna definidas en ambas tablas no son exactamente iguales en tipo, rango o charset.
3) La tabla donde se define la FK ya contiene datos, y al menos uno de los registros no cumple con la restricción de FK-->PK.

El tercero es el más usual, y para resolverlo hay que verificar los datos de la tabla.
Algo como
Código MySQL:
Ver original
  1. SELECT M.*
  2. FROM maquinas M LEFT JOIN modelo_maquina MM ON M.id_modelo = MM.id
  3. WHERE MM.id IS NULL;
te debería devolver registros si hay alguno que no cumpla con la condicion de FK.

Revisas si hay inconsistencias de tipo de columna es un poco más complicado. Necesitaríamos ver los CREATE TABLE, que se pueden obtener de este modo:
Código MySQL:
Ver original
  1. SHOW CREATE TABLE maquinas;
  2. SHOW CREATE TABLE modelo_maquina;
Eso devolverá la sentencia CREATE TABLE que crea cada una de las tablas que estás usando en el caso.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)