Bonjour à tous;

J'ai une table de prix table_prix dont je voudrais mettre a jour seulement certain prix.
Actuellement la requête ets la suivante

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
Update table_prix
set prix = prix +
case
when produit_id = 2150 then 1 //on augmente le prix du produit 2150 de 1 euros
when produit_id = 1236 then 2 // on augmente le prix du produit 1236 de 2 euros
else 0
end
Le souci du else 0 c'est qu'il effectue l'opération +0 sur toute la table et cela rallonge l'update.
Cette requête doit pouvoir être utilisée sur une dizaine de produit d'un coup parfois.

Y'a-t-il moyen de faire différemment sans devoir spécifier else 0 (si je ne met pas else 0, j'ai une erreur). ET sinon serait-il alors carrement mieux au niveau vitesse d'exécution de lancer N update du type

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Update table_prix
set prix = prix + X
where produit_id = Y
ou bien de lancer des groupes

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
update table_prix
set prix = prix +X
where produit_id in (Y1, Y2, Y3....)
Merci pour votre aide.