Bạn đang trộn lẫn hai khía cạnh:
- kiểu dữ liệu cho phép một số giá trị nhất định cho cột PK của bạn
- định dạng bạn đã chọn để hiển thị
AUTO_INCREMENT
là một khái niệm phi tiêu chuẩn của MySQL, SQL Server sử dụng IDENTITY (1,1)
, v.v.
Sử dụng sê-ri
cột trong Postgres:
CREATE TABLE users (
user_id serial PRIMARY KEY
, ...
)
Đó là kiểu giả được triển khai dưới dạng số nguyên
kiểu dữ liệu với bản vẽ mặc định cột từ SEQUENCE <được đính kèm / code>
. số nguyên
dễ dàng đủ lớn cho trường hợp của bạn (-2147483648 đến +2147483647).
Nếu bạn thực sự cần thực thi các số có tối đa 8 chữ số thập phân, hãy thêm KIỂM TRA
ràng buộc
:
CONSTRAINT id_max_8_digits CHECK (user_id BETWEEN 0 AND < 99999999)
Để hiển thị số theo bất kỳ kiểu dáng nào bạn muốn - 0 được đệm thành 8 chữ số, đối với trường hợp của bạn, hãy sử dụng to_char ()
:
SELECT to_char(user_id, '00000000') AS user_id_8digit
FROM users;
Đó là rất nhanh. Lưu ý rằng đầu ra là text
bây giờ, không phải số nguyên
.
SQL Fiddle.
Một số thứ khác dành riêng cho MySQL trong mã của bạn:
-
int (8)
:sử dụngint
. -
ngày giờ
:sử dụngdấu thời gian
. -
TYPE =INNODB