Ответ
Нет, не может. Согласно реляционной модели, у таблицы может быть только один первичный ключ (PRIMARY KEY). Однако этот ключ может быть составным (composite key), то есть состоять из нескольких столбцов.
Составной первичный ключ гарантирует уникальность комбинации значений в этих столбцах.
Пример создания (SQL):
CREATE TABLE order_items (
order_id INT NOT NULL,
product_id INT NOT NULL,
quantity INT,
PRIMARY KEY (order_id, product_id) -- Один ключ из двух полей
);
Почему только один PRIMARY KEY?
- Целостность: PRIMARY KEY — главный идентификатор строки для СУБД и логических связей (FOREIGN KEY).
- Индексация: Создаётся уникальный кластерный индекс.
Альтернатива: Вы можете создать дополнительные уникальные ограничения (UNIQUE CONSTRAINT) на другие наборы столбцов, которые будут функционально похожи на первичные ключи, но не являются ими.