Aby znaleźć konkretny błąd, uruchom to:
SHOW ENGINE INNODB STATUS;
I spójrz na LATEST FOREIGN KEY ERROR sekcja.
Typ danych dla kolumny podrzędnej musi dokładnie odpowiadać kolumnie nadrzędnej. Na przykład, ponieważ medicalhistory.MedicalHistoryID to INT , Patient.MedicalHistory również musi być INT , a nie SMALLINT .
Powinieneś także uruchomić zapytanie set foreign_key_checks=0 przed uruchomieniem DDL, dzięki czemu można tworzyć tabele w dowolnej kolejności, zamiast tworzyć wszystkie tabele nadrzędne przed odpowiednimi tabelami podrzędnymi.