Junior
78
questionbank

Что такое внешний ключ?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

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

Основные цели внешнего ключа:

  • Обеспечение ссылочной целостности: Гарантирует, что значения во внешнем ключе соответствуют существующим значениям в связанной таблице. Например, нельзя создать запись о заказе с несуществующим покупателем.
  • Создание связей между таблицами: Позволяет связывать данные из разных таблиц.

Пример:

Таблица users (пользователи) с первичным ключом id. Таблица orders (заказы) с внешним ключом user_id, который ссылается на users.id.

sql

В этом примере, внешний ключ user_id в таблице orders гарантирует, что каждый заказ связан с действительным пользователем из таблицы users.

Действия при удалении/обновлении связанной записи в родительской таблице могут быть настроены:

  • CASCADE: Автоматически удаляет/обновляет зависимые записи.
  • SET NULL: Устанавливает значение внешнего ключа в NULL в зависимых записях.
  • RESTRICT (по умолчанию): Предотвращает удаление/обновление родительской записи, если существуют зависимые записи.
  • NO ACTION: Аналогично RESTRICT, но может быть отложено до конца транзакции.