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 ?

Comment récupérer le dernier ID d'insertion/mise à jour avec la clé ON DUPLICATE de MySQL ?

DDD
DDDoriginal
2024-12-10 01:34:10399parcourir

How to Retrieve the Last Insert/Update ID with MySQL's ON DUPLICATE KEY?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn