首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误1215 MySQL (错误代码: 1215不能添加外键约束)

错误1215 MySQL (错误代码: 1215不能添加外键约束)
EN

Stack Overflow用户
提问于 2014-03-06 10:15:50
回答 1查看 763关注 0票数 0

早上好。我正在设计的数据库有问题。我有5张桌子,其中一张是多对多的关系。它的表有来自其他表的多个外键。我用MySQL Worckbecnh创建数据库,当它创建表"Partido“时,使用外键给出一个错误1215。我在寻找不同类型的属性,没有定义的主键,但我认为在我的代码中没有发现任何错误--我把这里的代码放在这里-- yoy的代码可以帮助我。谢谢。

代码语言:javascript
复制
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)
);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-06 11:17:36

其实我不明白您想通过多列FKs实现什么?

你为什么要添加一个FK

代码语言:javascript
复制
FOREIGN KEY (EquipoA , EquipoB)
    REFERENCES EQUIPO (NIF , NIF),

两根柱子?这些列彼此独立,而且它们引用相同的表。因此,您应该定义两个类似于

代码语言:javascript
复制
FOREIGN KEY (EquipoA)
    REFERENCES EQUIPO (NIF),
FOREIGN KEY (EquipoB)
    REFERENCES EQUIPO (NIF)

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22221372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档