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