On peut faire ça dans 2 cas :
- On a fait n’importe quoi, et la séquence a disparu :-(
- On veut transformer une colonne en « SERIAL »
SET ROLE owner_de_la_table;
SELECT max(id)+1 FROM latable;
-- ?column?
-- ----------
-- 155
-- (1 row)
-- On prend donc « max(id)+1 » comme valeur de départ de la séquence
BEGIN;
CREATE SEQUENCE latable_id_seq START 155 OWNED BY latable.id;
COMMIT;
Pour lier la séquence à la table (et ainsi l’utiliser lors d’INSERT par exemple) :
BEGIN;
ALTER TABLE schema.latable ALTER COLUMN id SET DEFAULT NEXTVAL('latable_id_seq'::regclass);
COMMIT;