(Uppdaterad - Tack till personerna som kommenterade )
Moderna versioner av PostgreSQL
Anta att du har en tabell som heter test1
, som du vill lägga till en auto-inkrementerande primärnyckel id
(surrogat) kolumn. Följande kommando bör vara tillräckligt i de senaste versionerna av PostgreSQL:
ALTER TABLE test1 ADD COLUMN id SERIAL PRIMARY KEY;
Äldre versioner av PostgreSQL
I gamla versioner av PostgreSQL (före 8.x?) var du tvungen att göra allt det smutsiga arbetet. Följande sekvens av kommandon bör göra susen:
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');
Återigen, i de senaste versionerna av Postgres motsvarar detta ungefär det enda kommandot ovan.