LoslegenKostenlos loslegen

Das Verhalten der referenziellen Integrität eines Schlüssels verändern

Bisher hast du drei Fremdschlüssel-Constraints implementiert:

  1. professors.university_id zu universities.id
  2. affiliations.organization_id zu organizations.id
  3. affiliations.professor_id zu professors.id

Diese Fremdschlüssel haben momentan das Verhalten ON DELETE NO ACTION. Nun willst du dieses Verhalten für die Spalte ändern, die organizations von affiliations referenziert. Wenn eine Organisation gelöscht wird, sollten auch alle ihre Zugehörigkeiten (von jeder Professorin und jedem Professor) gelöscht werden.

Das Ändern eines Schlüssel-Constraints funktioniert nicht mit ALTER COLUMN. Stattdessen musst du den Schlüssel-Constraint mittels DROP löschen und dann einen neuen 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

Kurs anzeigen

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

-- Identify the correct constraint name
SELECT constraint_name, table_name, constraint_type
FROM information_schema.___
WHERE constraint_type = 'FOREIGN KEY';
Code bearbeiten und ausführen