В настоящее время я работаю над заданием sql, которое включает базу данных с врачами, пациентами и больницами. В каждой больнице есть главный врач, и нам нужно сохранить дату, когда этот врач начал работу в качестве главы больницы. Я могу включить эту информацию в стол врача, больничный стол или в свою собственную таблицу. У меня должны быть следующие функции:
"Когда вы удаляете врача, вызывайте ошибку, если врач является главой больницы, и выполняете каскадное удаление при удалении врача, который лечит пациентов. "
Как я должен вести себя по-разному при удалении в зависимости от того, какого доктора удаляют ???
Моя первая мысль была такая, но, похоже, она не работает:
CREATE TABLE DOCTOR (
LiscenceNumber CHAR(4) NOT NULL,
Firstname VARCHAR(20),
Lastname VARCHAR(20),
Specialty VARCHAR(30),
LiscenceDate DATE,
IsHead BOOLEAN,
HeadDate DATE,
HospitalCode CHAR(3),
FOREIGN KEY (HospitalCode) REFERENCES Hospital(Code)
ON DELETE CASCADE WHERE IsHead = False
)
Есть идеи? Буду очень признателен за любую помощь.