sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo agregar una clave principal de incremento automático a una tabla existente en PostgreSQL?

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