Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Por que às vezes há uma ou mais lacunas no valor da coluna de incremento automático?


Parece ter algo a ver com a forma como suas instruções INSERT são formadas. Veja este violino , que é ligeiramente modificado do seu exemplo. Nesse caso, você não obtém lacunas (mas provavelmente obterá se anexar mais inserções... na verdade, sim .).

EDIT:Depois de um pouco mais de escavação, descobri que você não obtém lacunas se usar o mecanismo MyISAM (em oposição ao InnoDB). Então, talvez seja uma falha ou escolha curiosa de design no InnoDB...?

EDIT 2:Pesquisas adicionais revelaram este bug , arquivado contra o mecanismo de armazenamento InnoDB. Ele corresponde muito bem ao caso de uso da pergunta original. Nenhuma resolução para o bug foi fornecida, no entanto, parece que uma resolução é definir innodb_autoinc_lock_mode para 0 em seu arquivo my.cnf antes da inicialização do mysqld.