InnoDB resetuje pole auto_increment po ponownym uruchomieniu bazy danych.
Po ponownym uruchomieniu InnoDB znajduje najwyższą wartość w kolumnie, a następnie zaczyna od niej.
To się nie stanie w MyISAM, ponieważ buforuje ostatni zwiększony identyfikator.
Aktualizacja
Ta funkcja/błąd istnieje od 2003 roku i może prowadzić do poważnych problemów. Weź przykład poniżej,
-
Tabela t1 ma automatyczny klucz główny.
-
Tabela t2 zawiera kolumnę dla klucza głównego w t1 bez „ograniczenia” klucza obcego. Innymi słowy, gdy wiersz zostanie usunięty w t1, odpowiadające mu wiersze w t2 są osierocone.
-
Jak wiemy w przypadku ponownego uruchomienia InnoDB, identyfikator może zostać ponownie wydane. Dlatego osierocone wiersze w t2 mogą być fałszywie połączone z nowymi wierszami w t1.