Wenn Sie diese vage Fehlermeldung erhalten, können Sie den spezifischeren Fehler herausfinden, indem Sie
ausführenSHOW 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.