Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zatrzymaj ponowne używanie przez MySQL identyfikatorów AUTO_INCREMENT

W takim przypadku prawdopodobnie nie powinieneś używać indeksów AUTO_INCREMENT w miejscach publicznie dostępnych.

Wyprowadź pole kluczowe z innych danych lub użyj innego mechanizmu do utworzenia swojego identyfikatora. Jednym ze sposobów, z których korzystałem wcześniej, chociaż musisz zdawać sobie sprawę z (potencjalnie poważnych) konsekwencji wydajności, jest tabela „kluczy” do śledzenia ostatnio używanego klucza i zwiększania go.

W ten sposób możesz użyć dowolnego typu klucza, nawet nienumerycznego, i zwiększyć je za pomocą własnego algorytmu.

W przeszłości używałem 6-znakowych klawiszy alfanumerycznych:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL concat() do tworzenia nazw kolumn do użycia w zapytaniu?

  2. Uciekanie nazw kolumn w wyciągach PDO

  3. Jak mogę filtrować znaki Emoji z moich danych wejściowych, aby móc zapisać w MySQL <5.5?

  4. Zapytanie MySQL o geolokalizacji

  5. Powolne wyszukiwanie według zapytania indeksu LIKE% MYSQL