2016-02-20 132 views
0

當我在我的控制檯運行我的腳本的Sql#1005 - 無法創建表(錯誤150)

-- ----------------------------------------------------- 
-- Table `invictus`.`Equipo` 
-- ----------------------------------------------------- 
CREATE TABLE IF NOT EXISTS `invictus`.`Equipo` (
    `idPartido` INT NOT NULL, 
    `nomEquipo` VARCHAR(45) NOT NULL, 
    PRIMARY KEY (`idPartido`, `nomEquipo`), 
    CONSTRAINT `fkequipo_idPartido` 
    FOREIGN KEY (`idPartido`) 
    REFERENCES `invictus`.`Partido` (`idPartido`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION) 
ENGINE = InnoDB; 


-- ----------------------------------------------------- 
-- Table `invictus`.`Equipo-Ganador` 
-- ----------------------------------------------------- 
CREATE TABLE IF NOT EXISTS `invictus`.`Equipo-Ganador` (
    `idPartido` INT NOT NULL, 
    `equipoganador` VARCHAR(45) NOT NULL, 
    PRIMARY KEY (`idPartido`, `equipoganador`), 
    INDEX `fkeg_equipoganador_idx` (`equipoganador` ASC), 
    CONSTRAINT `fkeg_idpartido` 
    FOREIGN KEY (`idPartido`) 
    REFERENCES `invictus`.`Equipo` (`idPartido`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION, 
    CONSTRAINT `fkeg_equipoganador` 
    FOREIGN KEY (`equipoganador`) 
    REFERENCES `invictus`.`Equipo` (`nomEquipo`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION) 
ENGINE = InnoDB; 

在控制檯顯示以下錯誤:

錯誤 CONSULTA SQL:

CREATE TABLE IF NOT EXISTS `invictus`.`Equipo-Ganador` (
    `idPartido` INT NOT NULL, 
    `equipoganador` VARCHAR(45) NOT NULL, 
    PRIMARY KEY (`idPartido`, `equipoganador`), 
    INDEX `fkeg_equipoganador_idx` (`equipoganador` ASC), 
    CONSTRAINT `fkeg_idpartido` 
    FOREIGN KEY (`idPartido`) 
    REFERENCES `invictus`.`Equipo` (`idPartido`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION, 
    CONSTRAINT `fkeg_equipoganador` 
    FOREIGN KEY (`equipoganador`) 
    REFERENCES `invictus`.`Equipo` (`nomEquipo`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION) 
ENGINE = InnoDB 
MySQL ha dicho: Documentación 

#1005 - Can't create table 'invictus.Equipo-Ganador' (errno: 150) (Detalles…) 

我一直在尋找可能出現的錯誤:

  1. 兩個關鍵字段類型和/或大小不完全匹配。
  2. 外鍵名稱是已有鍵的副本。
  3. 我試圖引用的關鍵字段之一沒有索引和/或不是主鍵。

    This possible errors are here

感謝您的幫助。

回答

0

您的數據結構對我來說沒有意義 - 複合主鍵通常不會。

但是,外鍵參考,您需要引用的外鍵所有列,而不是一次一個:

CREATE TABLE IF NOT EXISTS `Equipo-Ganador` (
    `idPartido` INT NOT NULL, 
    `equipoganador` VARCHAR(45) NOT NULL, 
    PRIMARY KEY (`idPartido`, `equipoganador`), 
    INDEX `fkeg_equipoganador_idx` (`equipoganador` ASC), 
    CONSTRAINT `fkeg_idpartido_equipoganador` 
    FOREIGN KEY (`idPartido`, equipoganador) 
    REFERENCES `Equipo` (`idPartido`, nomEquipo) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION) 
ENGINE = InnoDB; 

這個工作在SQL Fiddle

+0

謝謝!這項工作 – tipiwiny

相關問題