Du blandar två aspekter:
- datatypen tillåter vissa värden för din PK-kolumn
- formatet du valde för visning
AUTO_INCREMENT är ett icke-standardiserat koncept för MySQL, SQL Server använder IDENTITY(1,1) , etc.
Använd en seriell
kolumn i Postgres:
CREATE TABLE users (
user_id serial PRIMARY KEY
, ...
)
Det är en pseudotyp implementerad som heltal datatyp med en kolumnstandardritning från en bifogad SEKVENS
. heltal är lätt tillräckligt stor för ditt fall (-2147483648 till +2147483647).
Om du verkligen behöver tvinga fram siffror med högst 8 decimalsiffror, lägg till en KONTROLL begränsning
:
CONSTRAINT id_max_8_digits CHECK (user_id BETWEEN 0 AND < 99999999)
Använd to_char()
:
SELECT to_char(user_id, '00000000') AS user_id_8digit
FROM users;
Det är väldigt snabbt. Observera att utdata är text nu, inte heltal .
SQL-fiol.
Ett par andra saker är MySQL-specifika i din kod:
int(8):användint.datumtid:användtidsstämpel.:släpp det.TYPE=INNODB