Je pense que votre problème est que vous configurez tout cela à la main plutôt qu'en utilisant un serial
colonne. Lorsque vous utilisez un serial
colonne, PostgreSQL créera la séquence, configurera la valeur par défaut appropriée et s'assurera que la séquence appartient à la table et à la colonne en question. À partir du manuel fin :
Mais vous n'utilisez pas serial
ou bigserial
donc pg_get_serial_sequence
n'aidera pas.
Vous pouvez y remédier en faisant :
alter sequence new_user_messages_id owned by user_messages.id
Je ne sais pas s'il s'agit d'une solution complète et quelqu'un (salut Erwin) remplira probablement les éléments manquants.
Vous pouvez vous épargner des ennuis ici en utilisant serial
comme type de données de votre id
colonne. Cela créera et connectera la séquence pour vous.
Par exemple :
=> 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)