Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про Postgres: database, primary key, foreign key

Что такое первичный (PRIMARY KEY) и внешний (FOREIGN KEY) ключи?

Вопрос проверяет понимание механизмов реляционных баз данных для идентификации и ссылочной целостности.

Короткий ответ

PRIMARY KEY — уникальный идентификатор записи в таблице и не может быть NULL. FOREIGN KEY — поле или набор полей, указывающих на PRIMARY KEY другой (или той же) таблицы для обеспечения ссылочной целостности.

Длинный ответ

PRIMARY KEY:

  • Обеспечивает уникальность строк.

  • Может состоять из одного или нескольких столбцов (составной ключ).

  • Обычно создаётся с AUTO_INCREMENT или SERIAL.

FOREIGN KEY:

  • Создаёт связь между таблицами.

  • Ограничение FOREIGN KEY проверяет, что значение существует в родительской таблице.

  • Обеспечивает целостность данных.

Пример:

CREATE TABLE users (
  	id SERIAL PRIMARY KEY,
  	name VARCHAR(100)
);

CREATE TABLE orders (
  	id SERIAL PRIMARY KEY,
  	user_id INT,
  	FOREIGN KEY (user_id) REFERENCES users(id)
);

Поведение при удалении/обновлении:

  • ON DELETE CASCADE — удаляет зависимые записи.

  • ON UPDATE RESTRICT — запрещает изменение ключа, если есть зависимые.

Когда применять:

  • PRIMARY KEY — всегда для уникальной идентификации.

  • FOREIGN KEY — для связных сущностей и контроля целостности.

Уровень

  • Рейтинг:

    2

  • Сложность:

    5

Навыки

  • Postgres

    Postgres

Ключевые слова

#database

#primary key

#foreign key

Подпишись на QA Engineer в телеграм