Jag tror att ditt problem är att du ställer in allt detta för hand istället för att använda en serial
kolumn. När du använder en serial
kolumn kommer PostgreSQL att skapa sekvensen, ställa in lämpligt standardvärde och se till att sekvensen ägs av tabellen och kolumnen i fråga. Från den fina manualen :
Men du använder inte serial
eller bigserial
alltså pg_get_serial_sequence
hjälper inte.
Du kan åtgärda detta genom att göra:
alter sequence new_user_messages_id owned by user_messages.id
Jag är inte säker på om detta är en komplett lösning och någon (hej Erwin) kommer förmodligen att fylla i de saknade bitarna.
Du kan spara lite problem här genom att använda serial
som datatyp för ditt id
kolumn. Det kommer att skapa och koppla upp sekvensen åt dig.
Till exempel:
=> 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)