1 colonne et 3 mises à jour possible

aechevar Messages postés 2 Date d'inscription mardi 11 octobre 2005 Statut Membre Dernière intervention 24 novembre 2005 - 24 nov. 2005 à 10:52
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 - 24 nov. 2005 à 16:04
Bonjour,

Est-il possible en 1 seule opération de mettre à jour une colonne selon 3 cas ?

Je m'explique :

Si cas1 alors tab1.col1 = A*B*C
Si cas 2 alors tab1.col1 = A*B
Si cas3 alors tab1.col1 = A*B*D
Sachant que B et D sont issues d'une autre table.

Je pensais à la fonction 'CASE When ' mais je n'arrive pas à l'écrire.

3 réponses

aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
24 nov. 2005 à 12:27
salut

bah pourquoi ne pas tous simplement le faire en trois requetes UPDATE ?

update tab1.col1 = A*B*C where cas1
update tab1.col1 = A*B where cas2
update tab1.col1 = A*B*D where cas3
0
aechevar Messages postés 2 Date d'inscription mardi 11 octobre 2005 Statut Membre Dernière intervention 24 novembre 2005
24 nov. 2005 à 12:54
Pour éviter de balayer 3 fois ma table qui fait 7 millions de lignes.
C'est aujourd'hui ce que je fais et pour exécuter les 3 requêtes, je mets 75 min.
0
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
24 nov. 2005 à 16:04
il faut que tu crés des indexes en fonction des tes cas.

et dans ce cas, meme avec trois updates tu ne parcourera pas trois fois ta table, mais une seule !

et en plus je pense que ca sera plus rapide

sur quoi portent tes condition ? sur des autres colonnes de la meme table ?
0
Rejoignez-nous