Mieszasz dwa aspekty:
- typ danych zezwalanie na określone wartości dla Twojej kolumny PK
- format wybrałeś do wyświetlania
AUTO_INCREMENT
jest niestandardową koncepcją MySQL, SQL Server używa IDENTITY(1,1)
itp.
Użyj serial
kolumna w Postgresie:
CREATE TABLE users (
user_id serial PRIMARY KEY
, ...
)
To jest pseudotyp zaimplementowany jako integer
typ danych z domyślnym rysunkiem kolumny z dołączonego SEKWENCJA
. liczba całkowita
jest wystarczająco duży dla Twojego przypadku (-2147483648 do +2147483647).
Jeśli naprawdę potrzebujesz wymusić liczby z maksymalnie 8 cyframi dziesiętnymi, dodaj SPRAWDŹ
ograniczenie
:
CONSTRAINT id_max_8_digits CHECK (user_id BETWEEN 0 AND < 99999999)
Aby wyświetlić numer w dowolny sposób - od 0 do 8 cyfr, w Twoim przypadku użyj to_char()
:
SELECT to_char(user_id, '00000000') AS user_id_8digit
FROM users;
To bardzo szybko. Zauważ, że wyjściem jest text
teraz, nie liczba całkowita
.
Skrzypce SQL.
Kilka innych rzeczy jest specyficznych dla MySQL w twoim kodzie:
int(8)
:użyjint
.data i godzina
:użyjznacznika czasu
.:po prostu to upuść.TYPE=INNODB