PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como adicionar uma chave primária de incremento automático a uma tabela existente, no PostgreSQL?


(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.