Ik denk dat je probleem is dat je dit allemaal met de hand instelt in plaats van met behulp van een serienummer
kolom. Wanneer u een serie
. gebruikt kolom, zal PostgreSQL de reeks maken, de juiste standaardwaarde instellen en ervoor zorgen dat de reeks eigendom is van de betreffende tabel en kolom. Uit de fijne handleiding :
Maar je gebruikt geen serieel
of groter
dus pg_get_serial_sequence
zal niet helpen.
U kunt dit verhelpen door het volgende te doen:
alter sequence new_user_messages_id owned by user_messages.id
Ik weet niet zeker of dit een complete oplossing is en iemand (hallo Erwin) zal waarschijnlijk de ontbrekende stukjes invullen.
Je kunt jezelf hier wat moeite besparen door serieel
als het gegevenstype van uw id
kolom. Dat zal de reeks voor u maken en aansluiten.
Bijvoorbeeld:
=> 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)