Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL non può aggiungere un vincolo di chiave esterna

Per trovare l'errore specifico, esegui questo:

SHOW ENGINE INNODB STATUS;

E guarda nel LATEST FOREIGN KEY ERROR sezione.

Il tipo di dati per la colonna figlio deve corrispondere esattamente alla colonna padre. Ad esempio, da medicalhistory.MedicalHistoryID è un INT , Patient.MedicalHistory deve anche essere un INT , non un SMALLINT .

Inoltre, dovresti eseguire la query set foreign_key_checks=0 prima di eseguire il DDL in modo da poter creare le tabelle in un ordine arbitrario anziché dover creare tutte le tabelle padre prima delle tabelle figlio rilevanti.