Mysql
 sql >> база данни >  >> RDS >> Mysql

Спрете MySQL повторното използване на AUTO_INCREMENT ID

В този случай вероятно не трябва да използвате AUTO_INCREMENT индекси на обществено достъпни места.

Или извлечете ключово поле от други данни, или използвайте различен механизъм за създаване на вашите идентификатори. Един от начините, които съм използвал преди, въпреки че трябва да сте наясно с (потенциално сериозните) последици за производителността, е таблица с „ключове“, за да проследявате последния използван ключ и да го увеличавате.

По този начин можете да използвате всеки тип ключ, който искате, дори нечислов, и да ги увеличавате, като използвате свой собствен алгоритъм.

Използвал съм 6-символни буквено-цифрови клавиши в миналото:

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 се обесва и трябваше да убие процеса

  2. MySQL - Възможно ли е да се използва LIKE за всички колони в таблица?

  3. Django MySQL пълно текстово търсене

  4. MySQL - NULL safe NOT равен оператор

  5. Отговорът на ajax данни винаги е 0 в php mysql