Sobes.tech
Middle+
55

Кадом кафолатҳоро дар дарёфти маълумот дар базаи додаҳои муносибатӣ медиҳад калиди хориҷӣ? Оё имкон дорад, ки сабтҳои падариро, агар калидҳои хориҷӣ ба он ишора кунанд, тоза кунем?

Ширкатҳо дар куҷо пурсиданд
Т-БанкТ-Банк

Ҷавоб аз AI

sobes.tech AI

Внешний ключ (foreign key) в реляционной базе данных гарантирует целостность ссылок между таблицами. Он обеспечивает, что значение в дочерней таблице (ссылающейся) соответствует существующему значению в родительской таблице.

Гарантии:

  • Нельзя вставить значение во внешний ключ, если соответствующая запись в родительской таблице отсутствует.
  • Можно настроить поведение при удалении или обновлении родительской записи (CASCADE, SET NULL, RESTRICT и др.).

Можно ли удалить родительскую запись, если на неё есть внешние ключи?

  • Если внешний ключ настроен с ограничением RESTRICT или NO ACTION, то удаление родительской записи будет запрещено, пока есть дочерние записи.
  • Если настроено CASCADE, то при удалении родительской записи автоматически удалятся все связанные дочерние записи.
  • Если SET NULL, то при удалении родительской записи внешний ключ в дочерних записях будет установлен в NULL.

Пример SQL:

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

Здесь при удалении клиента из таблицы customers автоматически удалятся все его заказы из orders.