Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Beenden Sie die Wiederverwendung von AUTO_INCREMENT-IDs durch MySQL

In diesem Fall sollten Sie wahrscheinlich keine AUTO_INCREMENT-Indizes an öffentlich zugänglichen Orten verwenden.

Leiten Sie entweder ein Schlüsselfeld aus anderen Daten ab oder verwenden Sie einen anderen Mechanismus, um Ihre IDs zu erstellen. Eine Möglichkeit, die ich zuvor verwendet habe, obwohl Sie sich der (möglicherweise schwerwiegenden) Auswirkungen auf die Leistung bewusst sein müssen, ist eine "Schlüssel"-Tabelle, um den zuletzt verwendeten Schlüssel zu verfolgen und diesen zu erhöhen.

Auf diese Weise können Sie jeden gewünschten Schlüsseltyp verwenden, auch nicht numerische, und sie mit Ihrem eigenen Algorithmus erhöhen.

Ich habe in der Vergangenheit 6-stellige alphanumerische Tasten verwendet:

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