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. -
:chỉ cần bỏ cái đó đi.TYPE =INNODB