PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Làm cách nào để thêm khóa chính tự động tăng dần vào bảng hiện có, trong PostgreSQL?

( Đã 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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các tiện ích mở rộng PostgreSQL yêu thích của tôi - Phần một

  2. Mẹo &Thủ thuật để Điều hướng Cộng đồng PostgreSQL

  3. Cặp giá trị khóa trong PostgreSQL

  4. Kiểm tra xem cơ sở dữ liệu có tồn tại trong PostgreSQL hay không bằng cách sử dụng shell

  5. Sử dụng các hàm cửa sổ trong một câu lệnh cập nhật