| ||||
Respuesta: Pasar clave foranea dos veces Cita: Nada tiene que ver que se llamen igual, a que ambos apunten a la misma tabla como FKporque no se pueden llamar dos campos igual. Te estás ahogando en un dedal e agua. Ponle a cada campo que es FK un nombre distinto, y en la declaración de FK lo especificas. ¿Se entiende?
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| ||||
Respuesta: Pasar clave foranea dos veces Buenas he vuelto a retomar el tema del proyeto mysql y ya he salido del vaso de agua y ahora me ahogo en una bañera. Fuera bromas, dejo aquí el código de la creación de las tablas implicadas porque una vez que he hecho lo que me dijiste algo tiene que ir mal porque me sale el error 1215 Cannot add foreign key constraint. El problema de todo esto está en la tabla partidos que es la que hereda claves de un montón de tablas. ¿Alguna idea del por qué del error?
Código:
CREATE TABLE PABELLON(Codigo_pabellon INT NOT NULL, Nombre VARCHAR(30), Codigo_localidad INT(3), PRIMARY KEY (Codigo_pabellon)); CREATE TABLE JORNADA(Codigo_jornada INT NOT NULL AUTO_INCREMENT, Numero INT(2), Codigo_Competicion INT NOT NULL, PRIMARY KEY(Codigo_jornada)); CREATE TABLE EQUIPO(NIF VARCHAR(9) NOT NULL, Nombre VARCHAR(30), Direccion VARCHAR(20), Telefono VARCHAR(20), PRIMARY KEY (NIF)); CREATE TABLE EQUIPO_ARBITRAL(DNI VARCHAR(9), Licencia INT(3), Nombre VARCHAR(20), Apellidos VARCHAR(20), Email VARCHAR(20), Telefono INT(9), Cuenta INT(20), Cod_localidad INT(3), PRIMARY KEY (DNI)); CREATE TABLE PARTIDO(Codigo_Partido INT NOT NULL AUTO_INCREMENT PRIMARY KEY, EquipoA VARCHAR(9) NOT NULL, EquipoB VARCHAR(9) NOT NULL, Fecha DATE, Hora TIME, Codigo_pabellon INT NOT NULL, Codigo_jornada INT, ArbPrin VARCHAR(9), ArbAux VARCHAR(9), Anotador VARCHAR(9), Crono VARCHAR(9), Op24 VARCHAR(9), INDEX (EquipoA, EquipoB), FOREIGN KEY (EquipoA, EquipoB) REFERENCES EQUIPO (NIF, NIF), INDEX (ArbPrin, ArbAux, Anotador, Crono, Op24), FOREIGN KEY (ArbPrin, ArbAux, Anotador, Crono, Op24) REFERENCES EQUIPO_ARBITRAL (DNI, DNI, DNI, DNI, DNI), INDEX (Codigo_pabellon), FOREIGN KEY (Codigo_pabellon) REFERENCES PABELLON (Codigo_pabellon), FOREIGN KEY (Codigo_jornada) REFERENCES JORNADA (Codigo_jornada));
__________________ Málaga Club de Fútbol: Memoria, Compromiso, Fe |
| |||
Respuesta: Pasar clave foranea dos veces
Código MySQL:
Ver original
Código MySQL:
Ver original Eran dos claves foraneas, no una....bañera. Deberias especificar mas cosas... el motor que quieres usar....etc) Manual de CREATE TABLE http://dev.mysql.com/doc/refman/5.0/...ate-table.html Manual de FK http://dev.mysql.com/doc/refman/5.0/...nstraints.html
__________________ Quim -------------------------------------------------- Ayudar a ayudar es una buena práctica!!! Y da buenos resultados. Última edición por quimfv; 06/03/2014 a las 07:06 |
Etiquetas: |