Maison > base de données > tutoriel mysql > Comment puis-je récupérer les valeurs mises à jour dans MySQL au-delà de la simple vérification du nombre de lignes affectées ?

Comment puis-je récupérer les valeurs mises à jour dans MySQL au-delà de la simple vérification du nombre de lignes affectées ?

DDD
Libérer: 2024-11-03 06:39:02
original
639 Les gens l'ont consulté

How Can I Retrieve Updated Values in MySQL Beyond Just Checking Affected Row Counts?

Récupération des valeurs mises à jour dans MySQL : au-delà du nombre de lignes affectées

Dans MySQL, la modification des données via des requêtes implique généralement d'examiner le nombre de lignes affectées à évaluer le succès de l'opération. Cependant, il devient parfois nécessaire de récupérer la valeur mise à jour elle-même. Considérez le scénario suivant :

UPDATE item SET `score`=`score`+1 WHERE `id`=1
Copier après la connexion

L'exécution de cette requête renvoie le nombre de lignes modifiées. Mais que se passe-t-il si l'on a besoin de connaître la valeur réelle de la colonne de score après l'incrément ?

L'approche traditionnelle : requêtes séparées

Une solution simple consiste à exécuter une requête distincte requête pour récupérer la valeur mise à jour. Cette approche peut être adéquate, mais elle introduit des allers-retours supplémentaires dans la base de données, ce qui peut avoir un impact sur les performances.

Utiliser les procédures stockées : une option plus efficace

Une approche plus efficace Cette approche consiste à tirer parti des procédures stockées. Les procédures stockées constituent un moyen pratique d'encapsuler plusieurs opérations de base de données dans une seule unité logique. Dans le contexte de la récupération de valeurs mises à jour, une procédure stockée peut combiner les opérations de mise à jour et de sélection au sein du même appel.

Par exemple, considérons la procédure stockée suivante :

DELIMITER $$
CREATE PROCEDURE increment_score(IN id_in INT)
BEGIN
    UPDATE item SET score = score + 1 WHERE id = id_in;
    SELECT score AS new_score FROM item WHERE id = id_in;
END
$$
DELIMITER ;
Copier après la connexion

Cette procédure stockée effectue l'incrémentation du score suivi de la sélection de la valeur mise à jour.

Intégration avec PHP

Pour utiliser cette procédure stockée en PHP, exécutez le code suivant :

$result = mysql_query("CALL increment_score($id)");
$row = mysql_fetch_array($result);
echo $row['new_score'];
Copier après la connexion

Ce code appelle la procédure stockée, récupère le jeu de résultats et extrait enfin la valeur mise à jour.

Conclusion

Dans MySQL, récupération des valeurs mises à jour après modification, les opérations peuvent être réalisées au-delà de la simple dépendance au nombre de lignes affectées. Les procédures stockées offrent un mécanisme puissant pour combiner les opérations de mise à jour et de sélection, maximisant ainsi l'efficacité et réduisant au minimum les appels à la base de données. En tirant parti des procédures stockées, les développeurs peuvent optimiser leurs stratégies de récupération de données, améliorant ainsi les performances globales de leurs applications.

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