Quando ricevi questo vago messaggio di errore, puoi scoprire l'errore più specifico eseguendo
SHOW ENGINE INNODB STATUS;
I motivi più comuni sono che quando si crea una chiave esterna, sia il campo di riferimento che il campo della chiave esterna devono corrispondere:
- Motore dovrebbe essere lo stesso ad es. InnoDB
- Tipo di dati dovrebbe essere la stessa e con la stessa lunghezza.
es. VARCHAR(20) o INT(10) UNSIGNED - Fascicolazione dovrebbe essere lo stesso. ad es. utf8
- Unico - La chiave esterna deve fare riferimento a un campo univoco (solitamente privato) nella tabella di riferimento.
Un'altra causa di questo errore è:
Hai definito una condizione SET NULL anche se alcune colonne sono definite come NOT NULL.