Stai mescolando due aspetti:
- il tipo di dati consentendo determinati valori per la tua colonna PK
- il formato hai scelto per la visualizzazione
AUTO_INCREMENT
è un concetto non standard di MySQL, SQL Server utilizza IDENTITY(1,1)
, ecc.
Utilizza un serial
colonna in Postgres:
CREATE TABLE users (
user_id serial PRIMARY KEY
, ...
)
Questo è uno pseudo-tipo implementato come integer
tipo di dati con una colonna predefinita che attinge da un SEQUENCE
. integer
è abbastanza grande per il tuo caso (da -2147483648 a +2147483647).
Se hai davvero bisogno di imporre numeri con un massimo di 8 cifre decimali, aggiungi un CHECK
vincolo
:
CONSTRAINT id_max_8_digits CHECK (user_id BETWEEN 0 AND < 99999999)
Per visualizzare il numero in qualsiasi modo desideri:0 con 8 cifre, per il tuo caso, usa to_char()
:
SELECT to_char(user_id, '00000000') AS user_id_8digit
FROM users;
È molto veloce. Nota che l'output è text
ora, non integer
.
SQL Fiddle.
Un paio di altre cose sono specifiche per MySQL nel tuo codice: