Может ли быть два первичных ключа на одной таблице в PostgreSQL?

Нет, у таблицы PostgreSQL может быть только одно ограничение PRIMARY KEY. Оно может включать несколько колонок; дополнительные уникальные ограничения не являются вторым первичным ключом.

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

Что ответить на собеседовании

Нет, у таблицы PostgreSQL может быть только одно ограничение PRIMARY KEY. Оно может включать несколько колонок; дополнительные уникальные ограничения не являются вторым первичным ключом.

Подробный разбор

Ответ с пояснениями

Нет, у таблицы PostgreSQL может быть только одно ограничение PRIMARY KEY. Оно может включать несколько колонок; дополнительные уникальные ограничения не являются вторым первичным ключом.

Например, PRIMARY KEY (tenant_id, id) задаёт один составной ключ. Он требует уникальности комбинации и отсутствия NULL в её компонентах. Отдельно можно объявить UNIQUE (email) или другие альтернативные ключи. При проектировании учитывайте, на какой ключ ссылаются внешние таблицы, и не путайте несколько колонок в одном ключе с несколькими независимыми PRIMARY KEY.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее