Explique el mecanismo de acción de ON DELETE SET NULL en el contexto de las relaciones entre tablas de bases de datos.
sobes.tech AI
Respuesta de la 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.
Это полезно, когда удаление родителя не должно приводить к удалению дочерних записей, но связь должна быть разорвана.