(Aggiornato - Grazie alle persone che hanno commentato )
Versioni moderne di PostgreSQL
Supponiamo di avere una tabella denominata test1
, a cui vuoi aggiungere un id
di chiave primaria a incremento automatico colonna (surrogato). Il seguente comando dovrebbe essere sufficiente nelle versioni recenti di PostgreSQL:
ALTER TABLE test1 ADD COLUMN id SERIAL PRIMARY KEY;
Versioni precedenti di PostgreSQL
Nelle vecchie versioni di PostgreSQL (prima della 8.x?) dovevi fare tutto il lavoro sporco. La seguente sequenza di comandi dovrebbe fare il trucco:
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');
Ancora una volta, nelle versioni recenti di Postgres questo è più o meno equivalente al comando singolo sopra.