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.