Maison > Article > base de données > Comment puis-je empêcher l'incrémentation automatique de MySQL sur les insertions en double ?
Empêcher l'incrémentation automatique sur les insertions en double MySQL
Lors de l'utilisation de MySQL 5.1.49, insertion de lignes en double dans une table InnoDB avec une incrémentation automatique la clé primaire peut entraîner l'incrémentation du champ ID même si l'insertion est ignorée. Cela peut entraîner des lacunes indésirables dans la séquence d'identification.
Solution
Pour empêcher l'incrémentation automatique lors des insertions en double, vous pouvez utiliser une instruction INSERT modifiée :
INSERT INTO tablename (tag) SELECT $tag FROM tablename WHERE NOT EXISTS( SELECT tag FROM tablename WHERE tag = $tag ) LIMIT 1
Où $tag est la valeur de balise que vous souhaitez insérer. Cette approche vérifie si la balise existe déjà avant de tenter une insertion. Si la balise n'existe pas, l'insertion est effectuée et le compteur d'incrémentation automatique n'est pas affecté.
Avantages de cette approche :
En utilisant cette instruction INSERT modifiée, vous pouvez empêcher le compteur d'incrémentation automatique d'incrémenter les insertions en double, garantissant ainsi une séquence d'identification séquentielle et sans interruption.
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!