Penso che il tuo problema sia che hai impostato tutto a mano piuttosto che usando un serial
colonna. Quando utilizzi un serial
colonna, PostgreSQL creerà la sequenza, imposterà il valore predefinito appropriato e si assicurerà che la sequenza sia di proprietà della tabella e della colonna in questione. Dal manuale di precisione :
Ma non stai usando serial
o bigserial
quindi pg_get_serial_sequence
non aiuterà.
Puoi rimediare facendo:
alter sequence new_user_messages_id owned by user_messages.id
Non sono sicuro che questa sia una soluzione completa e qualcuno (ciao Erwin) probabilmente riempirà i bit mancanti.
Puoi risparmiarti qualche problema qui usando serial
come tipo di dati del tuo id
colonna. Questo creerà e collegherà la sequenza per te.
Ad esempio:
=> 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)