Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/11/2012, 12:25
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 con tabla con claves foráneas

Cita:
Sin embargo, mi problema se da en que no puedo declarar la clave id_documento como clave foránea, y de acuerdo a la información que se me proporciona vía el comando SHOW ENGINE INNODB STATUS, aparentemente la estoy declarando mal.
El problema es sencillo.
Tu PK en "Antecedente" es
Código MySQL:
Ver original
  1. PRIMARY KEY(rut_alumno, id_documento)
y quieres crear una FK referida a ella que es:
Código MySQL:
Ver original
  1. FOREIGN KEY(id_documento)
  2. REFERENCES Antecedente(id_documento)
¿Notas la diferencia?
La tabla origen tiene una PK creada sobre dos campos, pero la FK que quieres apuntarle tiene un sólo campo. Por ende te estás olvidando de la esencia de la definición de FK:
"Campo o conjunto de campos cuyo valor se referencia a la PK de otra tabla."
Es decir, si una PK tiene más de un campo, la FK que se referencie a ella tiene que tener la misma cantidad de campos, en el mismo orden y del mismo tipo.
Y eso no lo estás haciendo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)