Il s'agit essentiellement d'une extension de Update multiple rows with one query?. Je souhaite pouvoir mettre à jour plusieurs colonnes de plusieurs lignes à la fois, mais pas nécessairement pour mettre à jour chaque colonne de chaque ligne.Mettre à jour plusieurs lignes avec différentes valeurs facultatives pour différentes colonnes
Voici un exemple de commande, je voudrais être en mesure d'exécuter:
UPDATE person
SET name = CASE id
WHEN 1 THEN 'Jim'
WHEN 3 THEN 'Precious'
END,
sex = CASE id
WHEN 1 THEN 'female'
WHEN 2 THEN 'male'
END
WHERE id IN (1,2,3)
Cependant ce retourne une erreur, me disant colonne « nom » ne peut pas être nulle. Il me semble donc que la spécification de WHERE id IN (x,y,z)
signifie que toutes les colonnes sélectionnées doivent être mises à jour, même si nous indiquons les valeurs à placer au cas par cas.
Y at-il un moyen de contourner cette limitation, comme une notation spéciale pour indiquer "conserver la valeur d'origine"? Sinon, existe-t-il un autre moyen de mettre à jour certaines colonnes arbitraires de plusieurs lignes dans une requête?
Merci a travaillé comme un charme. – dimo414