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

MySQL:ERROR 1215 (HY000):Nelze přidat omezení cizího klíče

Když se zobrazí tato vágní chybová zpráva, můžete zjistit konkrétnější chybu spuštěním

SHOW ENGINE INNODB STATUS;

Nejčastějšími důvody jsou, že při vytváření cizího klíče se musí pole s odkazem i pole cizího klíče shodovat:

  • Motor by měl být stejný např. InnoDB
  • Datový typ by měly být stejné a se stejnou délkou.
    např. VARCHAR(20) nebo INT(10) UNSIGNED
  • Řazení by mělo být stejné. např. utf8
  • Unikátní - Cizí klíč by měl odkazovat na pole, které je jedinečné (obvykle soukromé) v referenční tabulce.

Další příčinou této chyby je:
Definovali jste podmínku SET NULL, ačkoli některé sloupce jsou definovány jako NOT NULL.



  1. Jak uložit zeměpisnou délku a šířku do databáze. MySQL nepůjde dále než -99,9999999

  2. mysql extra sloupce se stejným názvem ze dvou tabulek

  3. jak používat kontrolní omezení v oracle

  4. Změňte výchozí jazyk přihlášení na serveru SQL Server