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 NULL
và 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.