sql >> Databáze >  >> RDS >> Mysql

SQL - kód chyby 1005 s číslem chyby 121

Chyba 121 znamená, že došlo k chybě omezení cizího klíče. Protože používáte InnoDB, můžete použít SHOW ENGINE INNODB STATUS po spuštění neúspěšného dotazu, abyste získali vysvětlení v LATEST FOREIGN KEY ERROR sekce. Když jsem si sám spustil SQL, dostanu toto:

------------------------
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.

V zásadě musíte v poslední tabulce přiřadit název omezení prjId jedinečný název. Názvy omezení/cizího klíče jsou pro databázi globální, takže je nelze znovu použít v různých tabulkách. Stačí změnit poslední

  CONSTRAINT `prjId`

do

  CONSTRAINT `prjId2`


  1. Vraťte řádky v přesném pořadí, v jakém byly vloženy

  2. je řazení php lepší než řazení mysql podle?

  3. Vložení více řádků z formuláře php do databáze

  4. Dotaz na výpočet součtu vzdálenosti (zeměpisná délka, šířka) v po sobě jdoucích řádcích v Mysql