Zacznij terazZacznij za darmo

Zmiana zachowania klucza obcego przy usuwaniu rekordów

Do tej pory zdefiniowano trzy ograniczenia klucza obcego:

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

Obecnie wszystkie te klucze mają ustawione zachowanie ON DELETE NO ACTION. W tym ćwiczeniu zmienisz to zachowanie dla kolumny odwołującej się do organizations w tabeli affiliations. Jeśli organizacja zostanie usunięta, wszystkie powiązane z nią afiliacje (niezależnie od profesora) powinny zostać usunięte automatycznie.

Zmiany zachowania istniejącego klucza nie można dokonać za pomocą ALTER COLUMN. Zamiast tego należy DROPować istniejące ograniczenie klucza, a następnie ADDać nowe z innym zachowaniem ON DELETE.

Aby usunąć ograniczenie, trzeba znać jego nazwę. Ta informacja jest przechowywana w information_schema.

To ćwiczenie jest częścią kursu

Wprowadzenie do relacyjnych baz danych w SQL

Zobacz kurs

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

-- Identify the correct constraint name
SELECT constraint_name, table_name, constraint_type
FROM information_schema.___
WHERE constraint_type = 'FOREIGN KEY';
Edytuj i uruchom kod