Внешний ключ (Foreign Key) — это столбец или набор столбцов в таблице (дочерней таблице), который ссылается на первичный ключ (Primary Key) другой таблицы (родительской таблицы).
Основные функции и концепции:
- Связывание таблиц: Внешние ключи устанавливают взаимосвязь между двумя таблицами, представляя собой link. Например, в таблице
orders может быть внешний ключ customer_id, ссылающийся на первичный ключ id в таблице customers.
- Целостность данных: Обеспечивает ссылочную целостность (referential integrity), гарантируя, что данные во дочерней таблице корректно ссылаются на существующие данные в родительской таблице. Нельзя вставить запись в дочернюю таблицу с внешним ключом, который не соответствует существующему первичному ключу в родительской таблице.
- Взаимодействие при изменениях: Поведение при удалении или обновлении записей в родительской таблице может быть настроено с помощью правил CASCADE, RESTRICT, SET NULL, SET DEFAULT или NO ACTION.
Пример создания таблицы с внешним ключом в SQL:
sql
Здесь category_id в таблице products является внешним ключом, ссылающимся на category_id (первичный ключ) в таблице categories. ON DELETE CASCADE означает, что при удалении категории будут удалены и все связанные с ней продукты.