Разница между ограничениями UNIQUE и PRIMARY KEY в PostgreSQL заключается в их назначении:
- UNIQUE помогает избежать повторения значений в определённом столбце. datafinder.ru Например, не позволяет добавить две строки, у которых значения для какого-то столбца будут совпадать. metanit.com При этом ограничение допускает одно пустое значение (NULL). sky.pro
- PRIMARY KEY идентифицирует каждую запись в таблице базы данных. datafinder.ru Столбец первичного ключа не может иметь значений NULL. datafinder.ru Он гарантирует не только уникальность записи, но и её присутствие в таблице. sky.pro Таблица может иметь только один первичный ключ, который может состоять из одного или нескольких полей. datafinder.ru
Таким образом, UNIQUE обеспечивает уникальность значений столбца, а PRIMARY KEY — уникальность записи в целом. sky.pro habr.com