mysql - 错误 1215 MySQL(错误代码 : 1215 Cannot add foreign key constraint)

标签 mysql database

早上好。我正在设计的数据库有问题。我有 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)
);

最佳答案

其实我不明白你想通过多列FK来实现什么?

为什么要添加FK之类的

FOREIGN KEY (EquipoA , EquipoB)
    REFERENCES EQUIPO (NIF , NIF),

超过两列? 这些列彼此独立,而且它们引用同一个表。因此你应该定义两个 FK,例如

FOREIGN KEY (EquipoA)
    REFERENCES EQUIPO (NIF),
FOREIGN KEY (EquipoB)
    REFERENCES EQUIPO (NIF)

您很可能希望在所有 FK 定义中相应地更改此设置,这些定义会多次引用引用表中的一列。

关于mysql - 错误 1215 MySQL(错误代码 : 1215 Cannot add foreign key constraint),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22221372/

相关文章:

php - 如何检查模型的任何字段是否为空或为空?

sql - 将一列中的值拆分为 2 列

sql - 对一组数据使用整数而不是 varchar *真的*值得吗?

mysql - 需要 SQL 选择查询帮助

sql - 快速从sqlserver中选择随机采样

python - 使用 Python 将文本文件写入 SQL

php - 警告 : mysql_result() [function. mysql-result]:无法跳转到 MySQL 结果索引 2 上的第 0 行

Mysql存储过程删除语句速度慢

mysql - 内连接或其他相等的解决方案

java - 如何在 hibernate 中使用数据库系统日期