Pytanie : InnoDB silnik reuses auto_increment IDs!!

I biegać w problem z the InnoDB silnik: ono gubić ślad the następny liczba dla auto_increment kolumna po tym jak serwer wznowienie. I rząd móc IDs kasować rząd kasować nowy rząd.

This być naprawdę problem dla mój aplikacja sieciowa: niektóre stół mieć odnosić się inny stół. I jeżeli kasować IDs dostawać kasować dla nowy rejestr, then rząd odnosić się nagle punkt inny rejestr z nowy dane zamiast the kasować rząd. Konsystencja bardzo wprawiać w zakłopotanie i móc duży, duży problem z baza danych konsystencja.

Every stół w mój baza danych mieć początkowy klucz kolumna wymieniać "ID", che definiować jako auto_increment. I I polegać na the przypuszczenie że rejestr zapewniać unikalny początkowy klucz dla wszystkie baza danych rejestr.

I czytać że MyISAM cierpieć od i, ale że silnik brakować niektóre cecha który I potrzebować, jak eg. wiosłować-zrównywać zatrzaskiwanie i transakcja.

How móc I ślad the wysoki nowy autonumber wartość po serwer wznowienie, tak, że IDs kasować rząd dostawać kasować?

Odpowiedź : InnoDB silnik reuses auto_increment IDs!!

I znać jak aplikacja sieciowa znać jeżeli the db wznawiać oprócz jeżeli ty przechować przechować jak the pid the mysql przykład na dysk każdy czas ty przystępować the strona.

OK, teraz gdy I myśleć ono, dlaczego to: Każdy czas ty biegać the zastosowanie, oprócz the last_insert_id () lokalny kartoteka.

Zanim ty biegać wszywka, sprawdzać ten kartoteka i porównywać ono the następny auto_increment liczba

WYBIERAĆ AUTO_INCREMENT OD information_schema.TABLES DOKĄD
      TABLE_SCHEMA = BAZA DANYCH () I TABLE_NAME = "whatever"

Wtedy, jeżeli the lokalny kartoteka mieć the to samo lub wielki, ustawiać auto_increment jeden bardziej the wielki liczba. Jeśli nie, martwić się.
Inne rozwiązania  
 
programming4us programming4us