Нещодавно я прочитав, що через те, як InnoDB перераховує значення AUTO_INCREMENT при перезапуску сервера, будь-які записи у верхньому кінці списку ідентифікаторів можуть повторно використовувати свої ідентифікатори.
Зазвичай це не проблема, тому що коли користувач видаляється, все, що пов'язано з ідентифікатором, видаляється і з інших таблиць.
Але я навмисно залишаю їхні форуми осиротіли, позначені як "Опубліковано = Користувач # 123 =", щоб минулі розмови зберігалися. Зрозуміло, що якщо повторно використовувати ідентифікатор, це буде проблемою.
У мене ніколи не виникало цієї проблеми, тому що завжди було достатньо нових користувачів, щоб зробити її ідентифікатором малоймовірним повторно використовувати таким чином. Однак у моєму новому підписці на проект трапляються рідкісні та неактивні видалення користувачів (тим більше, що облікові записи "Відкритої Альфи" тривають лише три дні як попередній перегляд), і повторне повторне використання ідентифікатора вже три за три.
Я "виправив" проблему, зберігаючи правильне значення для AUTO_INCREMENT в іншому місці та використовуючи це, а не покладаючись на внутрішнє значення. Чи існує фактичний спосіб запам'ятати InnoDB фактичне останнє значення?