Sobes.tech
Junior — Middle
104

Expliquez le mécanisme d'action de ON DELETE SET NULL dans le contexte des relations entre les tables de la base de données.

Entreprises à qui on a demandé
СБЕРСБЕР

Réponse de l'IA

sobes.tech IA

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.

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