Niedawno przeczytałem, że z powodu tego, jak InnoDB ponownie oblicza wartość AUTO_INCREMENT po ponownym uruchomieniu serwera, wszelkie rekordy z górnej listy listy identyfikatorów mogą zostać ponownie użyte.
Zwykle nie stanowi to problemu, ponieważ po usunięciu użytkownika wszystko powiązane z identyfikatorem jest również usuwane z innych tabel.
Ale celowo zostawiam ich posty na forum osierocone, oznaczone jako „Wysłane przez = Użytkownik # 123 =”, aby zachować wcześniejsze rozmowy. Oczywiście, jeśli identyfikator zostanie ponownie użyty, będzie to stanowić problem.
Nigdy wcześniej nie miałem tego problemu, ponieważ zawsze było wystarczającej liczby nowych użytkowników, aby uniemożliwić ponowne użycie identyfikatora w ten sposób. Jednak w moim nowym projekcie rejestracje są rzadkie, a nieaktywne usuwanie użytkowników jest częste (zwłaszcza, że konta „Open Alpha” trwają tylko trzy dni jako podgląd), a takie ponowne użycie identyfikatora zdarzyło się teraz trzy przez trzy.
„Naprawiłem” problem, zapisując poprawną wartość parametru AUTO_INCREMENT w innym miejscu i używając go zamiast polegać na wartości wewnętrznej. Czy istnieje sposób, aby InnoDB zapamiętał ostatnią wartość?