Автоинкремент MySql - повторное использование удаленных id записей

Можно ли настроить таблицу mysql так, что бы при вставке новой записи использовались id удаленных записей? Например есть в таблицt записи с id - 1 2 3 4 5 6 7 8 9, удалили запись 3. Потом вставили новую и она встала под id 3, а не под id 10. Связей с другими таблицами нет, так нужно по логике приложения. Есть ли готовые решение в MySql? Или писать свой скрипт?


Ответы (1 шт):

Автор решения: Chupaka

Готового решения нет и быть не может. AUTO INCREMENT работает так, чтобы новое значение всегда было больше текущего максимального значения в таблице. Перед каждой вставкой можно запрашивать "свободное" значение чем-то вроде

SELECT (t1.id + 1) as NewID
FROM mytable t1
WHERE NOT EXISTS 
    (SELECT t2.id 
    FROM mytable t2 
    WHERE t2.id = t1.id + 1);
→ Ссылка