Mysql
 sql >> Base de données >  >> RDS >> Mysql

Arrêtez MySQL de réutiliser les identifiants AUTO_INCREMENT

Dans ce cas, vous ne devriez probablement pas utiliser les index AUTO_INCREMENT dans des endroits accessibles au public.

Dérivez un champ clé à partir d'autres données ou utilisez un mécanisme différent pour créer vos identifiants. Une façon que j'ai déjà utilisée, bien que vous deviez être conscient des implications (potentiellement graves) sur les performances, est une table de "clés" pour suivre la dernière clé utilisée et l'incrémenter.

De cette façon, vous pouvez utiliser n'importe quel type de clé, même non numérique, et les incrémenter en utilisant votre propre algorithme.

J'ai déjà utilisé des clés alphanumériques à 6 caractères :

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