(Actualizado - Gracias a las personas que comentaron )
Versiones modernas de PostgreSQL
Suponga que tiene una tabla llamada test1
, al que desea agregar un id
de clave primaria de incremento automático columna (sustituto). El siguiente comando debería ser suficiente en versiones recientes de PostgreSQL:
ALTER TABLE test1 ADD COLUMN id SERIAL PRIMARY KEY;
Versiones anteriores de PostgreSQL
En versiones antiguas de PostgreSQL (¿anteriores a 8.x?) tenías que hacer todo el trabajo sucio. La siguiente secuencia de comandos debería funcionar:
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');
Una vez más, en las versiones recientes de Postgres, esto es más o menos equivalente al comando anterior.