Спасибо всем, я хотел, чтобы assistantID, ProfessorID и examinerID ссылались на PID. Я использовал Navicat для визуального оформления таблиц, и он не работал должным образом. Я протестировал то же самое в sqlserver и mysql (используя workbench) и в бинго это сработало.
CREATE TABLE `exam` (
`examID` int(11) NOT NULL,
`pID` int(11) DEFAULT NULL,
`assistantID` int(11) DEFAULT NULL,
`examinerID` int(11) DEFAULT NULL,
PRIMARY KEY (`examID`),
KEY `professor` (`pID`),
KEY `assistant` (`assistantID`),
KEY `examiner` (`examinerID`),
CONSTRAINT `assistant` FOREIGN KEY (`assistantID`) REFERENCES `professor` (`pid`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `examiner` FOREIGN KEY (`examinerID`) REFERENCES `professor` (`pid`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `professor` FOREIGN KEY (`pID`) REFERENCES `professor` (`pid`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
на данный момент я просто опустил тему, потому что она требует лучшего дизайна схемы.