sql >> Database >  >> RDS >> PostgreSQL

Kun je een reeks maken op een kolom die al bestaat in Postgres

Welnu, u moet eerst de reeks maken die u voor de standaardwaarde wilt gebruiken:

create sequence linelevelpmts_seq_seq;
ALTER TABLE public.linelevelpmts 
    ALTER COLUMN seq SET DEFAULT nextval('linelevelpmts_seq_seq'::regclass);

Als u hetzelfde effect wilt alsof het is gemaakt als serial je moet ook de "eigenaar" van de reeks wijzigen:

alter sequence linelevelpmts_seq_seq owned by linelevelpmts.seq;

Bewerken

Igor's opmerking is een goede:als je al waarden hebt in de kolom seq u moet de startwaarde van de reeks aanpassen:

select setval('linelevelpmts_seq_seq', (select max(seq) from linelevelpmts));



  1. Tabelruimte SYSMGMTDATA zit VOL in Grid Infrastructure Management Repository (MGMTDB)

  2. Ik heb per ongeluk root buitengesloten op MySQL

  3. Hoe krijg je de som voor elke afzonderlijke waarde in een andere kolom?

  4. SQL WHERE-component die overeenkomt met waarden met volgspaties