Acho que seu problema é que você configurou tudo isso manualmente, em vez de usar um
serial
coluna. Quando você usa um serial
coluna, o PostgreSQL criará a sequência, configurará o valor padrão apropriado e garantirá que a sequência seja de propriedade da tabela e coluna em questão. Do manual fino :Mas você não está usando
serial
ou bigserial
então pg_get_serial_sequence
não vai ajudar. Você pode remediar isso fazendo:
alter sequence new_user_messages_id owned by user_messages.id
Não tenho certeza se esta é uma solução completa e alguém (oi Erwin) provavelmente preencherá os bits que faltam.
Você pode evitar alguns problemas aqui usando
serial
como o tipo de dados do seu id
coluna. Isso criará e conectará a sequência para você. Por exemplo:
=> create sequence seq_test_id;
=> create table seq_test (id integer not null default nextval('seq_test_id'::regclass));
=> select pg_catalog.pg_get_serial_sequence('seq_test','id');
pg_get_serial_sequence
------------------------
(1 row)
=> alter sequence seq_test_id owned by seq_test.id;
=> select pg_catalog.pg_get_serial_sequence('seq_test','id');
pg_get_serial_sequence
------------------------
public.seq_test_id
(1 row)