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
Libérer: 2024-12-10 01:34:10
original
491 Les gens l'ont consulté

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>
Copier après la connexion

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 de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal