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

SQL - fejlkode 1005 med fejlnummer 121

Fejl 121 betyder, at der er en fejl med en fremmednøgle. Da du bruger InnoDB, kan du bruge SHOW ENGINE INNODB STATUS efter at have kørt den mislykkede forespørgsel for at få en forklaring i LATEST FOREIGN KEY ERROR afsnit. Efter at have kørt din SQL selv, får jeg dette:

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

Grundlæggende skal du give dit prjId-begrænsningsnavn et unikt navn i den sidste tabel. Begrænsninger/fremmednøglenavne er globale for en database, så de kan ikke genbruges i forskellige tabeller. Skift bare den sidste

  CONSTRAINT `prjId`
 

til

  CONSTRAINT `prjId2`
 


  1. MySQL JOIN for at erstatte ID'er med værdi fra en anden tabel

  2. Sådan deaktiveres MySQL Strict Mode

  3. SQL Server SHOWPLAN_TEXT

  4. Hvordan ændrer jeg alle tabellerne i min database til UTF8-tegnsæt?