(Atualizado - Obrigado às pessoas que comentaram )
Versões modernas do PostgreSQL
Suponha que você tenha uma tabela chamada
test1
, ao qual você deseja adicionar um id
de chave primária de incremento automático coluna (substituta). O seguinte comando deve ser suficiente em versões recentes do PostgreSQL: ALTER TABLE test1 ADD COLUMN id SERIAL PRIMARY KEY;
Versões mais antigas do PostgreSQL
Nas versões antigas do PostgreSQL (antes do 8.x?) você tinha que fazer todo o trabalho sujo. A seguinte sequência de comandos deve fazer o truque:
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');
Novamente, em versões recentes do Postgres, isso é aproximadamente equivalente ao único comando acima.