Ändere das Verhalten der referenziellen Integrität eines Schlüssels
Bisher hast du drei Fremdschlüsselbeschränkungen implementiert:
professors.university_id
zuuniversities.id
affiliations.organization_id
zuorganizations.id
affiliations.professor_id
zuprofessors.id
Diese Fremdschlüssel haben momentan das Verhalten ON DELETE NO ACTION
. Hier änderst du dieses Verhalten für die Spalte, die organizations
von affiliations
referenziert. Wenn eine Organisation gelöscht wird, sollten auch alle ihre Zugehörigkeiten (von jedem Professor) gelöscht werden.
Das Ändern einer Schlüsselbeschränkung funktioniert nicht mit ALTER COLUMN
. Stattdessen muss man die Schlüsselbeschränkung mittels DROP
löschen und dann ** eine neue** mittels ADD
mit einem anderen ON DELETE
-Verhalten erstellen.
Um Constraints zu löschen, muss man jedoch ihren Namen kennen. Diese Information ist ebenfalls in information_schema
gespeichert.
Diese Übung ist Teil des Kurses
Einführung in relationale Datenbanken in SQL
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
-- Identify the correct constraint name
SELECT constraint_name, table_name, constraint_type
FROM information_schema.___
WHERE constraint_type = 'FOREIGN KEY';