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

Làm thế nào để chuyển đổi khóa chính từ số nguyên sang nối tiếp?

serial là một pseudo kiểu dữ liệu, không phải kiểu dữ liệu thực tế. Đó là một số nguyên integer bên dưới với một số lệnh DDL bổ sung được thực thi tự động:

  1. Tạo một chuỗi (với tên phù hợp theo mặc định).
  2. Đặt cột NOT NULL và mặc định để vẽ từ trình tự đó.
  3. Làm cho cột "sở hữu" chuỗi.

Chi tiết:

  • Đổi tên một cách an toàn và rõ ràng các bảng sử dụng các cột khóa chính nối tiếp trong Postgres?

A bigserial giống nhau, được xây dựng xung quanh bigint cột. Bạn muốn bigint , nhưng bạn đã đạt được điều đó. Để chuyển đổi một serial hiện có cột thành một bigserial (hoặc smallserial ), tất cả những gì bạn cần làm là ALTER kiểu dữ liệu của cột. Các chuỗi thường dựa trên bigint , do đó, cùng một chuỗi có thể được sử dụng cho bất kỳ integer loại.

Để "thay đổi" một bigint thành một bigserial hoặc một số nguyên integer thành một serial , bạn chỉ cần làm phần còn lại bằng tay:

  • Tạo chuỗi PostgreSQL cho một trường (không phải là ID của bản ghi)

Kiểu dữ liệu thực tế vẫn là integer / bigint . Một số ứng dụng khách như pgAdmin sẽ hiển thị kiểu dữ liệu serial trong CREATE TABLE được thiết kế ngược script, nếu tất cả các tiêu chí cho một serial được đáp ứng.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để lấy tối thiểu, trung bình và tối đa từ truy vấn của tôi trong postgresql?

  2. Amazon RDS cho PostgreSQL Alternatives - ClusterControl cho PostgreSQL

  3. Cách UNION hoạt động trong PostgreSQL

  4. Làm cách nào để có được một kết xuất cơ sở dữ liệu postgres văn bản thuần túy trên heroku?

  5. làm cách nào để tạo tệp XML mới từ cơ sở dữ liệu hiện có trong cơ sở dữ liệu PostgreSQL bằng java