Вие смесвате два аспекта:
- типа данни разрешаване на определени стойности за вашата колона PK
- формата сте избрали за показване
AUTO_INCREMENT
е нестандартна концепция на MySQL, SQL Server използва IDENTITY(1,1)
и т.н.
Използвайте сериенкод>
колона в Postgres:
CREATE TABLE users (
user_id serial PRIMARY KEY
, ...
)
Това е псевдотип, реализиран като integer
тип данни с чертеж по подразбиране на колона от прикачен SEQUENCEкод>
. цяло число
лесно е достатъчно голям за вашия случай (-2147483648 до +2147483647).
Ако наистина трябва да наложите числа с максимум 8 десетични цифри, добавете ПРОВЕРКА
ограничение
:
CONSTRAINT id_max_8_digits CHECK (user_id BETWEEN 0 AND < 99999999)
За да покажете номера по желания от вас начин - 0-подплатени до 8 цифри, за вашия случай използвайте to_char()
:
SELECT to_char(user_id, '00000000') AS user_id_8digit
FROM users;
Това е много бързо. Имайте предвид, че изходът е текст
сега, не integer
.
SQL Fiddle.
Няколко други неща са специфични за MySQL във вашия код: