Question :
Pourquoi l'auto-incrémentation la valeur dans MySQL augmente malgré l'échec des insertions lorsqu'un champ unique existe-t-il ?
Explication :
InnoDB, le moteur par défaut de MySQL, fonctionne de manière transactionnelle. Par conséquent, lorsque plusieurs sessions tentent des insertions simultanées dans une table avec une colonne d'auto-incrémentation, certains scénarios peuvent survenir :
Conséquence :
Lorsqu'une insertion échoue en raison d'une violation de contrainte de champ unique, la valeur d'auto-incrémentation est toujours incrémentée car InnoDB maintient le compteur d'auto-incrémentation en mémoire tout au long de la durée de vie du serveur. opération. Lorsque le serveur redémarre, InnoDB réinitialise le compteur de chaque table lors de la première insertion dans cette table.
Atténuation :
Si le potentiel de retour à la ligne de la colonne ID est un problème , envisagez d'utiliser un type de données BIGINT (de 8 octets de long) pour fournir une plage de valeurs plus large.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!