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

Bạn có thể tạo một chuỗi trên một cột đã tồn tại trong Postgres không

Trước tiên, bạn cần tạo chuỗi bạn muốn sử dụng cho giá trị mặc định:

create sequence linelevelpmts_seq_seq;
ALTER TABLE public.linelevelpmts 
    ALTER COLUMN seq SET DEFAULT nextval('linelevelpmts_seq_seq'::regclass);

Nếu bạn muốn có hiệu ứng giống như thể nó được tạo dưới dạng serial bạn cũng cần thay đổi "chủ sở hữu" của chuỗi:

alter sequence linelevelpmts_seq_seq owned by linelevelpmts.seq;

Chỉnh sửa

Nhận xét của Igor rất hay:nếu bạn đã có các giá trị trong cột seq bạn nên điều chỉnh giá trị bắt đầu của chuỗi:

select setval('linelevelpmts_seq_seq', (select max(seq) from linelevelpmts));



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres:Ràng buộc chỉ bằng kiểm tra CHÈN

  2. SQLAlchemy:cập nhật from_select

  3. Làm cách nào để đếm giá trị null trong postgresql?

  4. Truy vấn không trả về gì từ cơ sở dữ liệu

  5. Làm thế nào để làm tròn số trung bình đến 2 chữ số thập phân trong PostgreSQL?