Du blander to aspekter:
- datatypen tillader visse værdier for din PK-kolonne
- formatet du valgte til visning
AUTO_INCREMENT
er et ikke-standard koncept af MySQL, SQL Server bruger IDENTITY(1,1)
osv.
Brug en seriel
kolonne i Postgres:
CREATE TABLE users (
user_id serial PRIMARY KEY
, ...
)
Det er en pseudo-type implementeret som heltal
datatype med en kolonne-standardtegning fra en vedhæftet SEQUENCE
. heltal
er nemt stor nok til dit tilfælde (-2147483648 til +2147483647).
Hvis du virkelig har brug for at håndhæve tal med et maksimum på 8 decimaler, skal du tilføje en CHECK
begrænsning
:
CONSTRAINT id_max_8_digits CHECK (user_id BETWEEN 0 AND < 99999999)
Brug to_char()
:
SELECT to_char(user_id, '00000000') AS user_id_8digit
FROM users;
Det er meget hurtigt. Bemærk, at outputtet er tekst
nu, ikke heltal
.
SQL Fiddle.
Et par andre ting er MySQL-specifikke i din kode:
int(8)
:brugint
.datotid
:brugtidsstempel
.:bare slip det.TYPE=INNODB