sql >> Databasteknik >  >> RDS >> Mysql

Hur man får nästa alfanumeriska ID baserat på befintligt värde från MySQL

Om du använder MyISAM kan du skapa en sammansatt primärnyckel i ett textfält + automatiskt inkrementfält. MySQL kommer att hantera ökningen av antalet automatiskt. De är separata fält, men du kan få samma 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 infogar i tabellen, key_increment fältet kommer att öka baserat på det högsta värdet baserat på key_prefix . Så infoga med key_prefix "smit" börjar med 1 i key_inrement , key_prefix "jone" börjar med 1 i key_inrement , etc.

Fördelar:

  • Du behöver inte göra något med att beräkna siffror.

Nackdelar:

  • Du har en nyckel uppdelad i två kolumner.
  • Det fungerar inte med InnoDB.


  1. Ansluter Snowflake DB &IRI Workbench

  2. Vilken SQL-fråga är snabbare? Filtrera på Join-kriterier eller Where-klausul?

  3. MySQL-implementering med CUDA

  4. SQL Server 2016 Temporal Table Query Plan Beteende