Zmiana zachowania klucza obcego przy usuwaniu rekordów
Do tej pory zdefiniowano trzy ograniczenia klucza obcego:
professors.university_iddouniversities.idaffiliations.organization_iddoorganizations.idaffiliations.professor_iddoprofessors.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
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';