( Đã cập nhật - Cảm ơn những người đã nhận xét )
Các phiên bản hiện đại của PostgreSQL
Giả sử bạn có một bảng có tên test1
, mà bạn muốn thêm một id
khóa chính, tự động tăng dần vào (đại diện) cột. Lệnh sau phải đủ trong các phiên bản gần đây của PostgreSQL:
ALTER TABLE test1 ADD COLUMN id SERIAL PRIMARY KEY;
Các phiên bản cũ hơn của PostgreSQL
Trong các phiên bản cũ của PostgreSQL (trước 8.x?), Bạn phải thực hiện tất cả các công việc khó khăn. Chuỗi lệnh sau sẽ thực hiện thủ thuật:
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');
Một lần nữa, trong các phiên bản gần đây của Postgres, điều này gần tương đương với lệnh đơn ở trên.