Pergunta : O motor de InnoDB reúso IDs do auto_increment!!

Eu funcionei em um problema com o motor de InnoDB: perde a trilha do número seguinte para colunas do auto_increment depois que reinício do usuário. E isso pode fazer com que os IDs de fileiras suprimidas sejam atribuídos novamente às fileiras novas. o

This é realmente um problema para minha aplicação web: algumas tabelas têm referências a outras tabelas. E se os IDs suprimidos começ reúso para novos recorda, a seguir aquelas referências apontar de repente a outros registros com dados novos em vez às fileiras suprimidas. Isto é muito desconcertante e pode conduzir aos problemas grandes, grandes com consistência da base de dados. a tabela do

Every em minha base de dados tem uma coluna da chave preliminar nomeada a “identificação”, que é definida como o auto_increment. E eu confiei na suposição que aquela asseguraria chaves preliminares originais para todos os registros de base de dados. o

I leu que MyISAM não sofre deste, mas que o motor falta algumas caraterísticas que eu preciso, como por exemplo o travamento e as transações do fileira-nível. o

How pode mim impedir trilha perdedora do valor novo o mais elevado do autonumber depois que o usuário reinicia, de modo que os IDs de fileiras suprimidas não começ atribuídos novamente?
class= do

Resposta : O motor de InnoDB reúso IDs do auto_increment!!

Eu não sei uma aplicação web saberia se o DB estêve reiniciado a não ser que se você armazena algo como o pid do exemplo do mysql no disco todas as vezes você acesso a página.

APROVAÇÃO, agora que eu penso dela, porque não fazer isto: Cada vez que você funciona a aplicação, excepto o last_insert_id () a uma lima local.

Antes que você funcione uma inserção, verific essa lima e compará-la ao número seguinte do auto_increment

SELECIONAR AUTO_INCREMENT de information_schema.TABLES ONDE
      TABLE_SCHEMA = BASE DE DADOS () E TABLE_NAME = “o que quer que”

Então, se a lima local têm o mesmos ou o maior, ajustar o auto_increment a um mais do que o número maior. Se não, não se preocupar.
Outras soluções  
 
programming4us programming4us