Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/12/2009, 16: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: Inserción de registros en tabla con llaves foráneas

Esta tabla:
Código MySQL:
Ver original
  1. CREATE TABLE HORARIOS
  2.     (NumMat char(5) not null,
  3.     Grupo char(1) not null,
  4.     NumProf char(5),
  5.     Dia char(2),
  6.     Hora char (5),
  7.     Salon char(3),
  8.     primary key (NumMat,Grupo),
  9.     foreign key (NumMat) references Materia(NumMat),
  10.     foreign key (Grupo) references Horarios(Grupo));
Es una tabla imposible: Estás definiendo como FK de la tabla a un campo, pero referenciandoló a la PK de la misma tabla, que a su vez es una PK de dos campos (una FK se referencia ala PK completa y no a parte de ella).
Eso es imposible, porque para insertar un registro debería previamente existir el valor en la tabla, y no puede existir porque para ello deberías haber podido ingresar ese mismo registro, que no puede ingresar porque no cumple con la restricción de FK... y así hasta la eternidad.
Para que esto te funcione, esto:
Código MySQL:
Ver original
  1. foreign key (Grupo) references Horarios(Grupo)
debería, en todo caso, estar refiriéndose a una clave en la tabla GRUPOS, y no en HORARIOS.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)