PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Pouvez-vous créer une séquence sur une colonne qui existe déjà dans Postgres

Eh bien, vous devez d'abord créer la séquence que vous souhaitez utiliser pour la valeur par défaut :

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

Si vous voulez le même effet que s'il avait été créé en tant que serial vous devez également changer le "propriétaire" de la séquence :

alter sequence linelevelpmts_seq_seq owned by linelevelpmts.seq;

Modifier

Le commentaire d'Igor est pertinent :si vous avez déjà des valeurs dans la colonne seq vous devez ajuster la valeur de départ de la séquence :

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