Sobes.tech
Junior — Middle
100

Explicați mecanismul de acțiune al ON DELETE SET NULL în contextul relațiilor dintre tabelele bazei de date.

Companiile au fost întrebate
СБЕРСБЕР

Răspuns de la AI

sobes.tech AI

ON DELETE SET NULL — это правило поведения внешнего ключа в базе данных при удалении связанной записи из родительской таблицы.

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

Это позволяет сохранить дочерние записи, но указывает, что связь с родительской записью теперь отсутствует.

Пример:

Таблица orders с внешним ключом customer_id, ссылающимся на таблицу customers:

ALTER TABLE orders
ADD CONSTRAINT fk_customer
FOREIGN KEY (customer_id) REFERENCES customers(id)
ON DELETE SET NULL;

Если удалить клиента из customers, то в orders.customer_id для связанных заказов будет записано NULL.

Это полезно, когда удаление родителя не должно приводить к удалению дочерних записей, но связь должна быть разорвана.