sql >> Databasteknik >  >> RDS >> Mysql

SQL - felkod 1005 med felnummer 121

Fel 121 betyder att det finns ett begränsningsfel för främmande nyckel. Eftersom du använder InnoDB kan du använda SHOW ENGINE INNODB STATUS efter att ha kört den misslyckade frågan för att få en förklaring i LATEST FOREIGN KEY ERROR sektion. Efter att ha kört din SQL själv får jag detta:

------------------------
LATEST FOREIGN KEY ERROR
------------------------
101210 14:55:50 Error in foreign key constraint creation for table `regula`.`Reservation`.
A foreign key constraint of name `regula`.`prjId`
already exists. (Note that internally InnoDB adds 'databasename'
in front of the user-defined constraint name.)
Note that InnoDB's FOREIGN KEY system tables store
constraint names as case-insensitive, with the
MySQL standard latin1_swedish_ci collation. If you
create tables or databases whose names differ only in
the character case, then collisions in constraint
names can occur. Workaround: name your constraints
explicitly with unique names.

I grund och botten måste du ge ditt prjId-begränsningsnamn ett unikt namn i den sista tabellen. Begränsnings-/främmande nyckelnamn är globala för en databas, så de kan inte återanvändas i olika tabeller. Ändra bara den sista

  CONSTRAINT `prjId`

till

  CONSTRAINT `prjId2`


  1. Förstå flera kolumnindex i MySQL-fråga

  2. Sammanfoga tabeller i två databaser med SQLAlchemy

  3. MySQL Error 1 (HY000) Problem med att skapa filen Errcode 2

  4. Kan inte ansluta till MySQL 4.1+ med gammal autentisering