(Актуализирано – Благодаря на хората, които коментираха )
Модерни версии на PostgreSQL
Да предположим, че имате таблица с име test1
, към който искате да добавите автоматично увеличаващ се id
първичен ключ (сурогатна) колона. Следната команда трябва да е достатъчна в последните версии на PostgreSQL:
ALTER TABLE test1 ADD COLUMN id SERIAL PRIMARY KEY;
По-стари версии на PostgreSQL
В старите версии на PostgreSQL (преди 8.x?) трябваше да свършите цялата мръсна работа. Следната последователност от команди трябва да свърши работа:
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');
Отново, в последните версии на Postgres това е приблизително еквивалентно на една единствена команда по-горе.