早上好。我正在设计数据库问题。我有5张桌子,其中一张与许多关系有很多关系。IT表有其他表的多个外键。我使用mysql worckbecnh创建数据库,当它创建表" partido"时,它给我带来了一个带有外国键的错误1215。我正在寻找具有不同类型的属性,未定义的主要键,但我认为我在代码中没有发现任何错误我将Yoy代码放在这里可以帮助我。谢谢。
CREATE TABLE PABELLON (
Codigo_pabellon INT NOT NULL,
Nombre VARCHAR(30),
Codigo_localidad INT(3),
PRIMARY KEY (Codigo_pabellon),
FOREIGN KEY (Codigo_localidad)
REFERENCES LOCALIDAD (Codigo_localidad)
);
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),
FOREIGN KEY (EquipoA , EquipoB)
REFERENCES EQUIPO (NIF , NIF),
FOREIGN KEY (ArbPrin , ArbAux , Anotador , Crono , Op24)
REFERENCES EQUIPO_ARBITRAL (DNI , DNI , DNI , DNI , DNI),
FOREIGN KEY (Codigo_Pabellon)
REFERENCES PABELLON (Codigo_Pabellon),
FOREIGN KEY (Codigo_jornada)
REFERENCES JORNADA (Codigo_Jornada)
);
实际上我不明白您想实现多列FKS?
为什么添加fk之类的
FOREIGN KEY (EquipoA , EquipoB)
REFERENCES EQUIPO (NIF , NIF),
在两列上?这些列是彼此独立的,除了它们引用同一表。因此,您应该定义两个FKS,例如
FOREIGN KEY (EquipoA)
REFERENCES EQUIPO (NIF),
FOREIGN KEY (EquipoB)
REFERENCES EQUIPO (NIF)
您很可能想在所有FK定义中相应地更改此内容,这些定义多次将一列引用一列。