Назад к вопросам
Junior
112
questionbank
Что такое внешний ключ?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Внешний ключ (foreign key) — это поле (или набор полей) в одной таблице базы данных, которое ссылается на поле (обычно первичный ключ) в другой таблице. Он устанавливает связь между таблицами, обеспечивая целостность данных.
Основные цели внешнего ключа:
- Обеспечение ссылочной целостности: Гарантирует, что значения во внешнем ключе соответствуют существующим значениям в связанной таблице. Например, нельзя создать запись о заказе с несуществующим покупателем.
- Создание связей между таблицами: Позволяет связывать данные из разных таблиц.
Пример:
Таблица users (пользователи) с первичным ключом id.
Таблица orders (заказы) с внешним ключом user_id, который ссылается на users.id.
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(255)
);
CREATE TABLE orders (
order_id INT PRIMARY KEY,
user_id INT,
amount DECIMAL(10, 2),
FOREIGN KEY (user_id) REFERENCES users(id)
);
В этом примере, внешний ключ user_id в таблице orders гарантирует, что каждый заказ связан с действительным пользователем из таблицы users.
Действия при удалении/обновлении связанной записи в родительской таблице могут быть настроены:
CASCADE: Автоматически удаляет/обновляет зависимые записи.SET NULL: Устанавливает значение внешнего ключа в NULL в зависимых записях.RESTRICT(по умолчанию): Предотвращает удаление/обновление родительской записи, если существуют зависимые записи.NO ACTION: АналогичноRESTRICT, но может быть отложено до конца транзакции.