sql >> Database >  >> RDS >> Mysql

Stop MySQL met het hergebruiken van AUTO_INCREMENT ID's

In dit geval moet u waarschijnlijk geen AUTO_INCREMENT-indexen gebruiken op openbaar toegankelijke plaatsen.

Leid ofwel een sleutelveld af van andere gegevens, of gebruik een ander mechanisme om uw id's aan te maken. Een manier die ik eerder heb gebruikt, hoewel je je bewust moet zijn van de (mogelijk ernstige) prestatie-implicaties, is een "sleutels"-tabel om de laatst gebruikte sleutel te volgen en die te verhogen.

Op die manier kunt u elk type sleutel gebruiken dat u wilt, zelfs niet-numerieke, en ze verhogen met uw eigen algoritme.

Ik heb in het verleden alfanumerieke toetsen van 6 tekens gebruikt:

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. POWER() Voorbeelden in SQL Server

  2. SQLite geaggregeerde functies

  3. Voeg unieke reeksen van 8 willekeurige tekens in

  4. Verschil tussen multi-statement tabelwaardige functies en inline tabelwaardige functies in SQL Server