sql >> Database teknologi >  >> RDS >> Mysql

ERRO 1215. MySql InnoDB

Jeg testede din tabeloprettelse.

Så fik jeg mere information om fremmednøglefejlen:

mysql> show engine innodb status\G

------------------------
LATEST FOREIGN KEY ERROR
------------------------
2018-02-20 14:51:33 700002d90000 Error in foreign key constraint of table calls/called:

    FOREIGN KEY (`Code`)
    REFERENCES `calls`.`city` (`Code`)
    ON DELETE CASCADE
    ON UPDATE CASCADE,
  CONSTRAINT `Number`
    FOREIGN KEY (`Number`)
    REFERENCES `calls`.`subscriber` (`Number`)
    ON DELETE CASCADE
    ON UPDATE CASCADE):
Cannot find an index in the referenced table where the
referenced columns appear as the first columns, or column types
in the table and the referenced table do not match for constraint.
...

Jeg kan se problemet:du har en sammensat primærnøgle i city på kolonner (Name, Code) . Til dette skal du oprette en fremmednøglebegrænsning, der refererer til begge kolonner af forælderens primære nøgle.

Sådan:

CONSTRAINT `Name`
FOREIGN KEY (`Name`, `Code`)
REFERENCES `calls`.`city` (`Name`, `Code`)
ON DELETE CASCADE
ON UPDATE CASCADE

Erklær ikke en begrænsning for hver kolonne - erklær en begrænsning, der refererer til begge kolonner i nøglen.




  1. Sådan duplikerer du en database ved hjælp af phpMyAdmin

  2. .Net ORM, der fungerer godt med MySQL

  3. Bedste måde at håndtere stavefejl i en MySQL fuldtekstsøgning

  4. Beder om et legitimt eksempel på at kalde lagret procedure C#:MYSQL