(Mise à jour - Merci aux personnes qui ont commenté )
Versions modernes de PostgreSQL
Supposons que vous ayez une table nommée test1
, auquel vous souhaitez ajouter un id
de clé primaire à incrémentation automatique (substitut) colonne. La commande suivante devrait suffire dans les versions récentes de PostgreSQL :
ALTER TABLE test1 ADD COLUMN id SERIAL PRIMARY KEY;
Anciennes versions de PostgreSQL
Dans les anciennes versions de PostgreSQL (avant 8.x ?), vous deviez faire tout le sale boulot. La séquence de commandes suivante devrait faire l'affaire :
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');
Encore une fois, dans les versions récentes de Postgres, cela équivaut à peu près à la commande unique ci-dessus.