( Обновлено) - спасибо тем, кто прокомментировал )
Современные версии 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 это примерно эквивалентно приведенной выше единственной команде.