Що таке referential actions в SQL?
Що таке referential actions в SQL?
Огляд
Referential actions в SQL визначають, як система повинна реагувати на зміни в таблицях, які мають зв'язки між собою. Це важливий аспект для підтримки цілісності даних у реляційних базах даних.
Приклад таблиць
-+-+-+-+--+
| id | user_id | item |
+--+-+--+
SELECT usr.username, p.item
FROM users usr
JOIN purchases p ON usr.id = p.user_id
ORDER BY usr.username;Типи referential actions
RESTRICT
Якщо на рядок з users посилається хоча б один рядок з orders, ми не зможемо видалити. Єдиний спосіб видалити такий запис - це спочатку видалити дані з orders, а тільки після того referential integrity дозволить видалити користувача.
CASCADE
Найбільш небезпечне правило, оскільки воно означає, що при видаленні рядка з таблиці users будуть видалені всі рядки з orders, які посилаються на користувача.
SET NULL
При видаленні користувача з таблиці users всім orders, які на нього посилаються, буде записано NULL в foreign key (user_id).
Застосування правил
Всі ті самі правила застосовуються і для UPDATE-операції, але так як це використовується доволі рідко, на інтервʼю вас будуть запитувати саме про DELETE.
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.