(Updated - Thanks to the people who commented)
假设您有一个名为test1
的表,您想在其中添加一个自动递增的主键id
(代理项)列.在最新版本的PostgreSQL中,以下命令应该足够了:
ALTER TABLE test1 ADD COLUMN id SERIAL PRIMARY KEY;
在旧版本的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中,这大致相当于上面的单个命令.