Lorsque vous obtenez ce message d'erreur vague, vous pouvez trouver l'erreur plus spécifique en exécutant
SHOW ENGINE INNODB STATUS;
Les raisons les plus courantes sont que lors de la création d'une clé étrangère, le champ référencé et le champ de clé étrangère doivent correspondre :
- Moteur devrait être le même ex. InnoDB
- Type de données doivent être identiques et de même longueur.
ex. VARCHAR(20) ou INT(10) UNSIGNED - Collation devrait être le même. par ex. utf8
- Unique - La clé étrangère doit faire référence à un champ unique (généralement privé) dans la table de référence.
Une autre cause de cette erreur est :
Vous avez défini une condition SET NULL bien que certaines colonnes soient définies comme NOT NULL.