MySQL - No entiendo pq falla la clave foránea

   
Vista:

No entiendo pq falla la clave foránea

Publicado por Carlos (2 intervenciones) el 17/10/2007 13:27:07
Cuando ejecuto el script en phpmyadmin me dice #1005 - Can't create table './aprodd/GT_GT.frm' (errno: 150) , el error de clave foránea. No sé pq, en el mismo script tengo más claves foráneas y van bien. Pasa sólo con esta table que tiene de especial que es reflexiva en el modelo ER. La tabla que falla y a la que se refiere son:

tabla referida:
CREATE TABLE GrupoTeoria (
idTitulacion INT(2) NOT NULL,
idAsignatura INT(2) NOT NULL,
idCurso VARCHAR(5) NOT NULL,
idDepartamento INT(2) NOT NULL,
idGrupoTeoria INT(2) NOT NULL AUTO_INCREMENT,
numAlumnos INT(3),
PRIMARY KEY grupoTeoria_pk (idGrupoTeoria, idTitulacion, idAsignatura, idCurso, idDepartamento),
INDEX grupoTeoria_idx (idTitulacion, idAsignatura, idCurso, idDepartamento),
FOREIGN KEY grupoTeoria_fk_acad(idTitulacion, idAsignatura, idCurso, idDepartamento)
REFERENCES Acad(idTitulacion, idAsignatura, idCurso, idDepartamento)
ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=INNODB;

Tabla que refiere:
CREATE TABLE GT_GT (
idTitulacion INT(2) NOT NULL,
idAsignatura INT(2) NOT NULL,
idCurso VARCHAR(5) NOT NULL,
idDepartamento INT(2) NOT NULL,
idGrupoTeoria INT(2) NOT NULL,
idTitulacionGrupoCompartido INT(2) NOT NULL,
idAsignaturaGrupoCompartido INT(2) NOT NULL,
idDepartamentoGrupoCompartido INT(2) NOT NULL,
idGrupoTeoriaCompartido INT(2) NOT NULL,
PRIMARY KEY gt_gt_pk (idTitulacion, idAsignatura, idCurso, idDepartamento, idGrupoTeoria, idTitulacionGrupoCompartido, idAsignaturaGrupoCompartido, idDepartamentoGrupoCompartido, idGrupoTeoriaCompartido),
INDEX gt_gt_idx1 (idTitulacion, idAsignatura, idCurso, idDepartamento, idGrupoTeoria),
FOREIGN KEY gt_gt_fk(idTitulacion, idAsignatura, idCurso, idDepartamento, idGrupoTeoria)
REFERENCES GrupoTeoria(idTitulacion, idAsignatura, idCurso, idDepartamento, idGrupoTeoria)
ON DELETE CASCADE ON UPDATE CASCADE,
INDEX gt_gt_idx2(idTitulacionGrupoCompartido, idAsignaturaGrupoCompartido, idDepartamentoGrupoCompartido,idGrupoTeoriaCompartido),
FOREIGN KEY gt_gt_fk2(idTitulacionGrupoCompartido, idAsignaturaGrupoCompartido,idDepartamentoGrupoCompartido,idGrupoTeoriaCompartido)
REFERENCES GrupoTeoria(idTitulacion, idAsignatura, idDepartamento, idGrupoTeoria)
ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=INNODB;

Si tenéis alguna idea me sería de mucha ayuda, pq no entiendo que puede ocurrir. Muchas gracias

Carlos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:No entiendo pq falla la clave foránea

Publicado por Carlos (2 intervenciones) el 17/10/2007 13:48:22
Me respondo yo solo por si a alguien le puede servir.
lo que yo quería es que el único atributo que debia ser igual era idCurso, por tanto no estaba como idCursoGrupoCompartido. Pero claro, era clave primaria de la tabla grupoTeoria, por tanto, también debía incluirlo en el foreign key de ***GrupoCompartido.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar