Sobes.tech
Junior — Middle
105

Εξηγήστε τον μηχανισμό λειτουργίας του ON DELETE SET NULL στο πλαίσιο των σχέσεων μεταξύ των πινάκων βάσης δεδομένων.

Εταιρείες όπου ρωτήθηκαν
СБЕРСБЕР

Απάντηση από 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.

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