Questione : Il motore di InnoDB riutilizza i IDs di auto_increment!!

Ho funzionato in un problema con il motore di InnoDB: perde la pista del numero seguente per le colonne di auto_increment dopo che nuovo inizio dell'assistente. E quello può indurre i IDs delle file cancellate ad essere riassegnato alle nuove file. il

This è realmente un problema per il mio applicazione Web: alcune tabelle hanno riferimenti ad altre tabelle. E se i IDs cancellati ottengono riutilizzati per i nuovi record, quindi quei riferimenti indicare improvvisamente altre annotazioni con i nuovi dati anziché alle file cancellate. Ciò è molto confusionaria e può condurre ai grandi, grandi problemi con consistenza della base di dati. la tabella del

Every nella mia base di dati ha una colonna di chiave primaria chiamata “identificazione„, che è definita come auto_increment. Ed ho contato sul presupposto che quello avrebbe assicurato le chiavi primarie uniche per tutte le annotazioni di base di dati. il

I ha letto che MyISAM non soffre da questo, ma che il motore manca alcune caratteristiche di che ho bisogno, come per esempio la chiusura e le transazioni del fila-livello. il

How può io impedire la pista perdente di più alto nuovo valore del autonumber dopo che l'assistente ricomincia, di modo che i IDs delle file cancellate non ottengono riassegnati?
class= del

Risposta : Il motore di InnoDB riutilizza i IDs di auto_increment!!

Non so un applicazione Web saprebbe se il db sia stato ricominciato a meno che se immagazzinate sempre qualcosa come il pid del caso del mysql sul disc voi accesso la pagina.

APPROVAZIONE, ora che penso esso, perché non fare questo: Ogni volta che fate funzionare l'applicazione, salvo il last_insert_id () ad una lima locale.

Prima che facciate funzionare un inserto, controllare quella lima e confrontarla al numero seguente di auto_increment

SELEZIONARE AUTO_INCREMENT A PARTIRE da information_schema.TABLES DOVE
      TABLE_SCHEMA = BASE DI DATI () E TABLE_NAME = “qualunque„

Allora, se la lima locale ha lo stessi o il maggior, regolare il auto_increment ad uno più di maggior numero. Se non, non preoccupar.
Altre soluzioni  
 
programming4us programming4us