sql >> Databasteknik >  >> RDS >> Mysql

Stoppa MySQL-återanvändning av AUTO_INCREMENT ID:n

I det här fallet bör du förmodligen inte använda AUTO_INCREMENT-index på allmänt tillgängliga platser.

Antingen härleda ett nyckelfält från andra data, eller använd en annan mekanism för att skapa ditt ID. Ett sätt som jag har använt tidigare, även om du måste vara medveten om de (potentiellt allvarliga) prestandakonsekvenserna, är en "nycklar"-tabell för att spåra den senast använda nyckeln och öka den.

På så sätt kan du använda vilken typ av nyckel du vill, även icke-numerisk, och öka dem med din egen algoritm.

Jag har använt 6-teckens alfanumeriska nycklar tidigare:

CREATE TABLE `TableKeys` (
  `table_name` VARCHAR(8) NOT NULL,
  `last_key` VARCHAR(6) NOT NULL,
  PRIMARY KEY (`table_name`)
);

SELECT * FROM `TableKeys`;

table_name | last_key
-----------+---------
users      | U00003A2
articles   | A000166D
products   | P000009G


  1. Anslutning till SQL Server fungerar ibland

  2. Hur tar man reda på att användaren finns i SQLite Database med Android?

  3. Upprätthålla ett grupperat löpande MAX (eller MIN)

  4. Implementera rekursiva kommentarer i PHP/MySQL