Maison >base de données >tutoriel mysql >Comment récupérer le dernier ID d'insertion/mise à jour avec la clé ON DUPLICATE de MySQL ?
MySQL ON DUPLICATE KEY : Récupération du dernier ID d'insertion/mise à jour
Lors de l'exécution d'une instruction INSERT ou UPDATE avec ON DUPLICATE KEY, l'insert_id de MySQL () renvoie généralement l'ID de la ligne insérée. Cependant, cette approche est problématique si l'instruction met à jour une ligne existante à la place.
Pour surmonter cette limitation et récupérer l'ID des lignes insérées et mises à jour sans exécuter plusieurs requêtes, MySQL propose une solution :
Comme mentionné dans la documentation MySQL, en passant une expression à LAST_INSERT_ID(), vous pouvez la rendre significative pour les mises à jour. Plus précisément, si vous souhaitez récupérer le dernier ID d'insertion ou de mise à jour lors de l'utilisation de ON DUPLICATE KEY, vous pouvez utiliser la technique suivante :
En supposant que "id" est une colonne AUTO_INCREMENT, modifiez l'instruction INSERT pour inclure les éléments suivants :
INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE>
Dans cet exemple, pour les insertions, LAST_INSERT_ID() renverra l'ID de la ligne nouvellement créée. Pour les mises à jour, il renverra l'ID de la ligne mise à jour, fournissant ainsi une méthode cohérente pour récupérer le dernier ID inséré ou mis à jour pour les deux scénarios.
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!