sql >> Databasteknik >  >> RDS >> Mysql

MySQL:ERROR 1215 (HY000):Kan inte lägga till främmande nyckel-begränsning

När du får detta vaga felmeddelande kan du ta reda på det mer specifika felet genom att köra

SHOW ENGINE INNODB STATUS;

De vanligaste orsakerna är att när man skapar en främmande nyckel måste både det refererade fältet och det främmande nyckelfältet matcha:

  • Motor bör vara samma t.ex. InnoDB
  • Datatyp bör vara samma, och med samma längd.
    t.ex. VARCHAR(20) eller INT(10) OSIGNERAD
  • Sortering bör vara densamma. t.ex. utf8
  • Unik - Främmande nyckel bör referera till fält som är unikt (vanligtvis privat) i referenstabellen.

En annan orsak till detta fel är:
Du har definierat ett SET NULL-villkor även om några av kolumnerna är definierade som NOT NULL.



  1. Java-typ för datum/tid när du använder Oracle Date med Hibernate

  2. Hur man korrekt skriver UTF-8-strängar i MySQL via JDBC-gränssnittet

  3. Hur man infogar data direkt från Excel till Oracle Database

  4. Oracle CREATE TABLE-kommando i PL/SQL med 10 exempel