(Zaktualizowane – Podziękowania dla osób, które skomentowały )
Nowoczesne wersje PostgreSQL
Załóżmy, że masz tabelę o nazwie test1
, do którego chcesz dodać automatycznie zwiększający się klucz podstawowy id
(zastępcza) kolumna. Następujące polecenie powinno wystarczyć w najnowszych wersjach PostgreSQL:
ALTER TABLE test1 ADD COLUMN id SERIAL PRIMARY KEY;
Starsze wersje PostgreSQL
W starych wersjach PostgreSQL (przed 8.x?) trzeba było wykonać całą brudną robotę. Poniższa sekwencja poleceń powinna wystarczyć:
ALTER TABLE test1 ADD COLUMN id INTEGER;
CREATE SEQUENCE test_id_seq OWNED BY test1.id;
ALTER TABLE test ALTER COLUMN id SET DEFAULT nextval('test_id_seq');
UPDATE test1 SET id = nextval('test_id_seq');
Ponownie, w najnowszych wersjach Postgresa jest to z grubsza równoważne z pojedynczym poleceniem powyżej.