早上好。我正在设计的数据库有问题。我有5张桌子,其中一张是多对多的关系。它的表有来自其他表的多个外键。我用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)
);发布于 2014-03-06 11:17:36
其实我不明白您想通过多列FKs实现什么?
你为什么要添加一个FK
FOREIGN KEY (EquipoA , EquipoB)
REFERENCES EQUIPO (NIF , NIF),两根柱子?这些列彼此独立,而且它们引用相同的表。因此,您应该定义两个类似于
FOREIGN KEY (EquipoA)
REFERENCES EQUIPO (NIF),
FOREIGN KEY (EquipoB)
REFERENCES EQUIPO (NIF)您很可能希望在所有FK定义中相应地更改这一点,这些定义多次引用引用表中的一个列。
https://stackoverflow.com/questions/22221372
复制相似问题