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:
- Tạo một chuỗi (với tên phù hợp theo mặc định).
- Đặt cột
NOT NULLvà mặc định để vẽ từ trình tự đó. - 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.