Comprendre la mise à jour de la clé en double avec incrémentation automatique
Description du problème :
Insérer des données dans une table avec une clause ON DUPLICATE KEY UPDATE entraîne des incréments d'ID inattendus lorsque des valeurs en double sont rencontrées. Plus précisément, l'ID augmente lors de l'insertion initiale, mais reste le même lors du déclenchement de la mise à jour.
Explication :
Selon la documentation MySQL, lors d'une MISE À JOUR DE CLÉ EN DUPLICATE est utilisée, MySQL tente d'abord une opération INSERT. Si cela conduit à une valeur de clé en double, une opération UPDATE est effectuée à la place. Toutefois, pour les colonnes à incrémentation automatique, l'incrément se produit uniquement pendant l'opération INSERT. Par conséquent, même si l'opération UPDATE est déclenchée, la valeur d'incrémentation automatique reste la même.
Solution :
Pour garantir des incréments d'auto-incrémentation appropriés, il n'est pas Il est conseillé de s'appuyer sur une séquence d'identification sans interruption. Au lieu de cela, envisagez de calculer et de gérer les valeurs incrémentielles manuellement ou d'utiliser la fonction AUTO_INCREMENT en sortie.
Remarques supplémentaires :
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!