sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan får man den primære nøgle til at have X-cifre i PostgreSQL?

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:



  1. Få en liste over første rekord for hver gruppe

  2. PHP-kode ved visning af en pdf-fil fra en mysql-database

  3. MySQL automatisk konvertering på små bogstaver

  4. GROUP_CONCAT returnerer NULL, hvis en værdi er NULL