sql >> Database >  >> RDS >> PostgreSQL

Nieuw toegewezen reeks werkt niet

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)



  1. Hoe gebruik ik flyway om gegevens van de ene DB naar een andere DB te migreren?

  2. Hoe verander ik SQL Server 2005 in hoofdlettergevoelig?

  3. Hoe MySQL op macOS te installeren

  4. Mysql bouwt dynamisch querystring in een opgeslagen procedure op basis van logica