Недавно я читал, что из-за того, как InnoDB пересчитывает значение AUTO_INCREMENT при перезапуске сервера, любые записи в верхнем конце списка идентификаторов могут повторно использоваться их идентификаторы.
Обычно это не проблема, поскольку при удалении пользователя все, что связано с идентификатором, удаляется и из других таблиц.
Но я намеренно оставляю их сообщения на форуме осиротевшими, помеченными как «Автор: = Пользователь # 123 =», так что прошлые разговоры сохраняются. Очевидно, что в случае повторного использования идентификатора это будет проблемой.
У меня никогда не было этой проблемы раньше, потому что всегда было достаточно новых пользователей, чтобы маловероятно, что идентификатор будет использован таким образом. Однако в моем новом проекте регистрации происходят редко, а неактивные удаления пользователей происходят часто (особенно потому, что учетные записи «Open Alpha» длятся только три дня в качестве предварительного просмотра), и такое повторное использование идентификаторов уже произошло три на три.
Я «исправил» проблему, сохранив правильное значение для AUTO_INCREMENT в другом месте и используя его вместо того, чтобы полагаться на внутреннее значение. Есть ли реальный способ, чтобы InnoDB запомнил фактическое последнее значение?