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