Mise à jour de plusieurs tables avec des valeurs identiques
Considérations sur les requêtes :
L'objectif est de mettre à jour deux tables, Table_One et Table_Two, avec des valeurs identiques pour des colonnes spécifiques (c'est-à-dire victoire, séquence et score) en fonction de critères spécifiques (c'est-à-dire ID utilisateur). Cependant, les tables présentent quelques différences : Table_Two n'a pas de champ de couvercle et leurs noms varient.
Approche de mise à jour multi-table :
MySQL offre la flexibilité d'effectuer plusieurs -mises à jour de la table via une seule requête. Cette approche exploite la puissance des jointures pour relier les tables en fonction de colonnes communes, permettant ainsi la mise à jour simultanée de plusieurs lignes dans les tables participantes.
Requête mise à jour :
<code class="sql">UPDATE Table_One a INNER JOIN Table_Two b ON (a.userid = b.userid) SET a.win = a.win+1, a.streak = a.streak+1, a.score = a.score+200, b.win = b.win+1, b.streak = b.streak+1, b.score = b.score+200 WHERE a.userid = 1 AND a.lid = 1 AND b.userid = 1;</code>
Dans cette requête de mise à jour multi-table :
Limitations et alternatives :
Il est crucial de noter que les mises à jour multi-tables ne prennent pas en charge LIMIT. Par conséquent, la requête peut mettre à jour plus de lignes que prévu. Par conséquent, les transactions ou les procédures stockées peuvent être des solutions plus appropriées pour garantir que les deux mises à jour sont exécutées de manière atomique.
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!