PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Puoi creare una sequenza su una colonna che esiste già in Postgres

Bene, devi prima creare la sequenza che desideri utilizzare per il valore predefinito:

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

Se vuoi lo stesso effetto come se fosse stato creato come serial devi anche cambiare il "proprietario" della sequenza:

alter sequence linelevelpmts_seq_seq owned by linelevelpmts.seq;

Modifica

Il commento di Igor è buono:se hai già dei valori nella colonna seq dovresti regolare il valore iniziale della sequenza:

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