2010-06-08 5 views
0

J'ai besoin de mettre à jour une colonne dans une table mysql. Si je le fais en deux étapes comme ci-dessous, la colonne "col" est-elle mise à jour deux fois sur le disque?MySQL - Mettre à jour deux fois la même colonne

mise à jour de la table SET col = 3 * col, col = col + 2;

ou est-il écrit qu'une seule fois comme dans:

Table mise à jour SET col = 3 * col + 2;

Merci

Répondre

1

Les deux mises à jour seront exécutés.

2
update table SET col=3*col+2; 

c'est mieux. JUSTE POUR ENREGISTRER où la table est votre tableName et non mot-clé

3

Voir: http://dev.mysql.com/doc/refman/5.0/en/update.html

...
missions UPDATE-table unique sont généralement évalués de gauche à droite. Pour les mises à jour de plusieurs tables, il n'y a aucune garantie que les affectations sont effectuées dans un ordre particulier.
...

Je suppose la colonne sur le disque est mis à jour une fois que (ligne écrite), car il doit valider toutes les affectations/champs dans une mise à jour, il ne ferait pas d'écrire un champ puis découvrez qu'il y a une violation de clé unique.

+0

J'ai eu le problème pour un UPDATE multi-table où l'ordre importait la façon dont j'ai écrit la requête. Un indice sur ce que signifie "généralement"? Comme, pour la table unique 'UPDATE', quels sont les cas qui conduisent à une mise à jour non-de-droite? – Xenos

Questions connexes