sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Puedes crear una secuencia en una columna que ya existe en Postgres?

Bueno, primero debe crear la secuencia que desea usar para el valor predeterminado:

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

Si desea el mismo efecto que si se creara como serial también necesita cambiar el "propietario" de la secuencia:

alter sequence linelevelpmts_seq_seq owned by linelevelpmts.seq;

Editar

El comentario de Igor es bueno:si ya tiene valores en la columna seq debe ajustar el valor inicial de la secuencia:

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