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