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.