Когато имате няколко стойности в първичен ключ, трябва да го посочите по различен начин като външен ключ.
По принцип, когато кажете
FlightID char (20) REFERENCES Flight(FlightID) ON DELETE CASCADE,
PostgreSQL проверява за този първичен ключ, който не съществува (тъй като първичният ключ в тази таблица е (flightid, flightdate)).
Така че пуснете REFERENCES
клаузи, когато препращате към таблицата на полетите, и добавете
FOREIGN KEY (FlightID, FlightDate) REFERENCES Flight (FlightID, FlightDate)
По начина, който имате в някои от другите дефиниции на таблици.