Mysql
 sql >> Database >  >> RDS >> Mysql

Interrompi il riutilizzo degli ID AUTO_INCREMENT da parte di MySQL

In questo caso, probabilmente non dovresti utilizzare gli indici AUTO_INCREMENT in luoghi accessibili al pubblico.

O deriva un campo chiave da altri dati o utilizza un meccanismo diverso per creare i tuoi ID. Un modo che ho usato in precedenza, anche se è necessario essere consapevoli delle (potenzialmente gravi) implicazioni sulle prestazioni, è una tabella "chiavi" per tenere traccia dell'ultima chiave utilizzata e incrementarla.

In questo modo puoi utilizzare qualsiasi tipo di chiave, anche non numerica, e incrementarla utilizzando il tuo algoritmo.

Ho usato chiavi alfanumeriche a 6 caratteri in passato:

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