Para encontrar o erro específico, execute isto:
SHOW ENGINE INNODB STATUS;
E olhe no
LATEST FOREIGN KEY ERROR
seção. O tipo de dados da coluna filha deve corresponder exatamente à coluna pai. Por exemplo, como
medicalhistory.MedicalHistoryID
é um INT
, Patient.MedicalHistory
também precisa ser um INT
, não um SMALLINT
. Além disso, você deve executar a consulta
set foreign_key_checks=0
antes de executar o DDL para que você possa criar as tabelas em uma ordem arbitrária, em vez de precisar criar todas as tabelas pai antes das tabelas filhas relevantes.