Автоинкремент 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);