Maison > base de données > tutoriel mysql > Comment la MISE À JOUR DE LA CLÉ EN DUPLICATE de MySQL peut-elle renvoyer l'ID de ligne concerné ?

Comment la MISE À JOUR DE LA CLÉ EN DUPLICATE de MySQL peut-elle renvoyer l'ID de ligne concerné ?

Susan Sarandon
Libérer: 2024-12-16 18:49:18
original
451 Les gens l'ont consulté

How Can MySQL's ON DUPLICATE KEY UPDATE Return the Affected Row ID?

MySQL ON DUPLICATE KEY peut-il renvoyer le dernier identifiant inséré ou mis à jour ?

Dans MySQL, l'instruction INSERT ... ON DUPLICATE KEY UPDATE permet des opérations d'insertion ou de mise à jour au sein d'une seule requête. Cependant, obtenir l'ID de la ligne concernée peut être difficile.

Normalement, la fonction LAST_INSERT_ID() renvoie l'ID de l'enregistrement nouvellement inséré. Après une opération de mise à jour, cela n’a plus aucun sens. Pour résoudre ce problème, vous pouvez exploiter une expression avec LAST_INSERT_ID(), comme décrit dans la documentation MySQL.

Plus précisément, créez une expression qui met à jour le champ id (une colonne AUTO_INCREMENT dans cet exemple) et inclut LAST_INSERT_ID(expr ) comme expression pour lui donner un sens pour mises à jour.

Exemple :

Considérez une table avec une colonne id comme AUTO_INCREMENT. Pour mettre à jour ou insérer des lignes et récupérer l'ID affecté :

INSERT INTO table (a, b, c) VALUES (1, 2, 3)
ON DUPLICATE KEY UPDATE id = LAST_INSERT_ID(id), c = 3;
Copier après la connexion

Cette approche garantit que LAST_INSERT_ID() fournit l'ID de la ligne affectée, quelles que soient les opérations d'insertion ou de mise à jour, éliminant ainsi le besoin d'une deuxième requête pour obtenir la pièce d'identité.

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