Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Обмеження Зовнішніх Ключів. Опція ON DELETE | Реляційні Бази Даних
Реляційні Бази Даних та Нормалізація
course content

Зміст курсу

Реляційні Бази Даних та Нормалізація

Реляційні Бази Даних та Нормалізація

1. Моделі Баз Даних
2. Реляційні Бази Даних
3. Нормалізація та Нормальні Форми

bookОбмеження Зовнішніх Ключів. Опція ON DELETE

ON DELETE

У реляційних базах даних зовнішній ключ встановлює зв'язок між двома таблицями. Цей зв'язок є суворим і супроводжується певними правилами або обмеженнями, відомими як ON DELETE.

Опція ON DELETE (при видаленні) визначає дію, яка виконується, коли запис, пов'язаний зовнішнім ключем, видаляється з іншої таблиці.

Для ілюстрації розглянемо сценарій з первинним ключем і пов'язаним з ним зовнішнім ключем. Коли ви видаляєте запис, що містить первинний ключ, спрацьовує вказана дія ON DELETE для відповідного зовнішнього ключа.

Примітка.

Під час створення зовнішнього ключа за допомогою інтерфейсу Системи керування базами даних (СКБД) вам часто буде запропоновано вибрати опцію ON DELETE. Однак, якщо ви визначаєте зв'язок безпосередньо за допомогою SQL, вам доведеться вказати цей параметр вручну.

Для зовнішнього ключа потрібно вказати дію ON DELETE.

Ось основні дії ON DELETE, які ви можете встановити:

  • CASCADE
  • RESTRICT (або NO ACTION)
  • SET NULL
  • SET DEFAULT

CASCADE

Коли видаляється первинний елемент, всі пов'язані з ним записи (ті, що посилаються на нього через зовнішній ключ) також видаляються.

Наприклад, якщо у вас є таблиці під назвами Group та Student (де в таблиці Student є зовнішній ключ, що вказує на таблицю Group):

І якщо відношення зовнішнього ключа з student.group_id до group.id визначено з опцією ON DELETE CASCADE, тоді видалення групи призведе до видалення всіх студентів, асоційованих з цією групою.

RESTRICT та NO ACTION

Ви не можете видалити первинний запис, якщо в інших таблицях є пов'язані записи. Якщо ви спробуєте це зробити, дію буде заблоковано, щоб забезпечити цілісність бази даних.

SET NULL

Видалення основного запису змінить зовнішній ключ у залежних записах на NULL, замість того, щоб видаляти ці записи.

Примітка

Щоб використовувати дію ON DELETE SET NULL, стовпець зовнішнього ключа має дозволяти null-значення.

SET DEFAULT

Дія SET DEFAULT подібна до SET NULL. Видалення первинного запису змінює зовнішній ключ у пов'язаних записах на вказане вами значення за замовчуванням, а не на NULL.

1. Коли ви впускаєте чашку, і вам здається, що світ навколо вас руйнується, яка опція ON DELETE відображає це відчуття?
2. Батьки завжди прикривають спини своїх дітей, але якби таблиці були перевернуті, яка опція ON DELETE представляла б дітей, що захищають своїх батьків?
3. Ви непомітно видалили запис, не залишивши жодних слідів. Яку опцію ON DELETE ви використали для такої прихованої операції?
4. Якщо щоразу, коли щось ламається, вам хочеться, щоб воно чарівним чином перетворилося на золото, яка опція ON DELETE зробить цю мрію реальністю?
Коли ви впускаєте чашку, і вам здається, що світ навколо вас руйнується, яка опція ON DELETE відображає це відчуття?

Коли ви впускаєте чашку, і вам здається, що світ навколо вас руйнується, яка опція ON DELETE відображає це відчуття?

Виберіть правильну відповідь

Батьки завжди прикривають спини своїх дітей, але якби таблиці були перевернуті, яка опція ON DELETE представляла б дітей, що захищають своїх батьків?

Батьки завжди прикривають спини своїх дітей, але якби таблиці були перевернуті, яка опція ON DELETE представляла б дітей, що захищають своїх батьків?

Виберіть правильну відповідь

Ви непомітно видалили запис, не залишивши жодних слідів. Яку опцію ON DELETE ви використали для такої прихованої операції?

Ви непомітно видалили запис, не залишивши жодних слідів. Яку опцію ON DELETE ви використали для такої прихованої операції?

Виберіть правильну відповідь

Якщо щоразу, коли щось ламається, вам хочеться, щоб воно чарівним чином перетворилося на золото, яка опція ON DELETE зробить цю мрію реальністю?

Якщо щоразу, коли щось ламається, вам хочеться, щоб воно чарівним чином перетворилося на золото, яка опція ON DELETE зробить цю мрію реальністю?

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 2
some-alt