Maison > base de données > tutoriel mysql > Comment obtenir l'ID de ligne après MySQL INSERT/UPDATE avec ON DUPLICATE KEY ?

Comment obtenir l'ID de ligne après MySQL INSERT/UPDATE avec ON DUPLICATE KEY ?

Patricia Arquette
Libérer: 2024-12-02 15:07:11
original
888 Les gens l'ont consulté

How to Get the Row ID After MySQL INSERT/UPDATE with ON DUPLICATE KEY?

Récupération de l'ID de ligne pour INSERT/UPDATE avec ON DUPLICATE KEY

Question :

Comment pouvez-vous récupérer l'ID d'une ligne après avoir effectué un INSERT ou UPDATE avec ON DUPLICATE KEY dans MySQL, sans devoir exécuter des requêtes distinctes ?

Réponse :

Pour y parvenir, vous pouvez utiliser la fonction LAST_INSERT_ID(expr) comme solution de contournement. En passant une expression à cette fonction, vous pouvez rendre LAST_INSERT_ID significatif pour les mises à jour.

Explication :

Comme mentionné dans la documentation liée (https://web.archive.org/web/20150329004325/https://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html), LAST_INSERT_ID() renvoie normalement uniquement le ' inséré' ID pour les INSERTs réussis.

Cependant, en utilisant LAST_INSERT_ID(expr) dans ON DUPLICATE KEY UPDATE, vous pouvez également la rendre significative pour les mises à jour.

Par exemple, si 'id' est votre colonne AUTO_INCREMENT, vous pouvez modifier votre requête comme suit :

INSERT INTO table (a) VALUES (0)
ON DUPLICATE KEY UPDATE>
Copier après la connexion

Dans dans ce cas, LAST_INSERT_ID(id) renverra l'ID mis à jour si un enregistrement existant a été trouvé et mis à jour, ou il renverra l'ID de l'enregistrement nouvellement inséré si aucun doublon n'a été trouvé.

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal