Какой из следующих способов вы бы использовали при объявлении первичных ключей Postgres?
CREATE TABLE user( user_id PRIMARY KEY, ... )
CREATE TABLE user( user_id NOT NULL, ... CONSTRAINT user_pk PRIMARY KEY(user_id); )
Я бы использовал метод № 1.
Одна из причин использования метода # 2 заключается в том, что ваш первичный ключ должен занимать более одного столбца. В этом случае метод # 1 не будет работать, поскольку он поддерживает только первичный ключ из одного столбца.