sql >> Database teknologi >  >> RDS >> Mysql

Sådan får du næste alfanumeriske ID baseret på eksisterende værdi fra MySQL

Hvis du bruger MyISAM, så kan du oprette en sammensat primærnøgle på et tekstfelt + automatisk stigningsfelt. MySQL håndterer automatisk forøgelse af antallet. De er separate felter, men du kan få den samme effekt.

CREATE TABLE example (
company_name varchar(100),
key_prefix char(4) not null,
key_increment int unsigned auto_increment,
primary key co_key (key_prefix,key_increment)
) ENGINE=MYISAM;

Når du laver en indsættelse i tabellen, vil key_increment feltet vil stige baseret på den højeste værdi baseret på key_prefix . Så indsæt med key_prefix "smit" starter med 1 i key_inrement , key_prefix "jone" starter med 1 i key_inrement osv.

Fordele:

  • Du behøver ikke gøre noget med at beregne tal.

Ulemper:

  • Du har en nøgle opdelt på tværs af 2 kolonner.
  • Det virker ikke med InnoDB.


  1. Min OOW15-tur er fuldført

  2. Hvordan summerer man en kommasepareret streng i SQL?

  3. Hvordan man bruger en case-erklæring til at bestemme, hvilket felt der skal gå med

  4. Adgang nægtet for brugeren 'test'@'ip' (ved hjælp af adgangskode:JA)