Встречается на собеседованиях • сегодня

Какие знаешь способы удаления записей с Foreign Key

В SQL есть несколько способов удаления записей с Foreign Key:

  1. CASCADE - автоматическое удаление зависимых записей
sql
ALTER TABLE child_table 
ADD CONSTRAINT fk_name 
FOREIGN KEY (parent_id) 
REFERENCES parent_table(id) 
ON DELETE CASCADE;
  1. SET NULL - установка NULL в FK поле зависимых записей
sql
ALTER TABLE child_table 
ADD CONSTRAINT fk_name 
FOREIGN KEY (parent_id) 
REFERENCES parent_table(id) 
ON DELETE SET NULL;
  1. SET DEFAULT - установка значения по умолчанию
sql
ALTER TABLE child_table 
ADD CONSTRAINT fk_name 
FOREIGN KEY (parent_id) 
REFERENCES parent_table(id) 
ON DELETE SET DEFAULT;
  1. RESTRICT/NO ACTION - запрет удаления (по умолчанию)

  2. Вручную через транзакцию:

sql
BEGIN;
DELETE FROM child_table WHERE parent_id = 1;
DELETE FROM parent_table WHERE id = 1;
COMMIT;

Выбор зависит от бизнес-логики приложения. CASCADE удобен, но опасен потерей данных. SET NULL требует nullable поля. Ручное удаление дает полный контроль.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы