Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL:FEHLER 1215 (HY000):Fremdschlüsselbeschränkung kann nicht hinzugefügt werden

Wenn Sie diese vage Fehlermeldung erhalten, können Sie den spezifischeren Fehler herausfinden, indem Sie

ausführen
SHOW ENGINE INNODB STATUS;

Die häufigsten Gründe sind, dass beim Erstellen eines Fremdschlüssels sowohl das referenzierte Feld als auch das Fremdschlüsselfeld übereinstimmen müssen:

  • Motor sollte gleich sein z.B. InnoDB
  • Datentyp sollte gleich und gleich lang sein.
    z.B. VARCHAR(20) oder INT(10) UNSIGNED
  • Sammlung sollte gleich sein. z.B. utf8
  • Einzigartig - Fremdschlüssel sollte sich auf ein Feld beziehen, das eindeutig (normalerweise privat) ist in der Referenztabelle.

Eine weitere Ursache für diesen Fehler ist:
Sie haben eine SET NULL-Bedingung definiert, obwohl einige der Spalten als NOT NULL definiert sind.