Да, вы можете так же, как вы показали (хотя я подвергаю сомнение вашего именования колонки 2. и 3.).
От docs:.
«Первичные ключи также могут ограничивать более одного столбец; синтаксис аналогичен уникальных ограничений:
CREATE TABLE example (
a integer,
b integer,
c integer,
PRIMARY KEY (a, c)
);
первичный ключ указывает на то, что столбец или группа столбцов может быть использован в качестве уникального идентификатора для строк в таблице (Это является прямым следствием определения. первичного ключа. Обратите внимание, что un Ограничение ique само по себе не дает уникального идентификатора, поскольку оно не исключает нулевые значения.) Это полезно как для целей документации, так и для клиентских приложений. Например, приложение GUI, которое позволяет изменять значения строк, вероятно, должно знать первичный ключ таблицы, чтобы иметь возможность однозначно идентифицировать строки.
Таблица может содержать не более одного первичного ключа (хотя может иметь множество уникальных и не нулевых ограничений). Теория реляционной базы данных требует, чтобы каждая таблица имела первичный ключ. Это правило не применяется PostgreSQL, но обычно лучше следовать ему. "
Это из-за программного обеспечения VP. –