Основное отличие ограничений CHECK и PRIMARY KEY в PostgreSQL заключается в их функциях.
Ограничение CHECK обеспечивает, что все значения в столбце удовлетворяют определённому условию. 35 Если условие оценивается как ложное, запись нарушает ограничение и не добавляется в таблицу. 3 Например, с помощью CHECK можно указать, что возраст клиентов не может быть меньше 0 или больше 100. 2
Ограничение PRIMARY KEY, в свою очередь, идентифицирует каждую запись в таблице базы данных. 3 Первичный ключ может состоять из одного или нескольких полей, но в таблице может быть только один. 3 Каждое значение первичного ключа должно быть уникальным, при этом нулевые значения в столбце, определённом с помощью PRIMARY KEY, не допускаются. 1
Таким образом, CHECK фокусируется на проверке вводимых значений, а PRIMARY KEY — на уникальной идентификации строк в таблице.