J'essaie d'exécuter une commande de mise à jour avec séquencement sur les lignes d'une base de données postgres. J'ai besoin de pouvoir mettre à jour plusieurs lignes qui ont des conditions différentes avec la même valeur.
Par exemple, supposons que j'ai une table utilisateur qui contient les champs suivants:
Supposons que j'ai 4 enregistrements dans ce tableau, je souhaite mettre à jour les enregistrements avec ID - 1 et 4 avec un nouvel emplacement, par exemple le Nigeria.
Quelque chose comme ça: SET field1 = 'foo' WHERE id = 1, SET field1 = 'bar' WHERE id = 2
Comment puis-je y parvenir avec séquelle?
Vous pouvez mettre à jour plusieurs enregistrements à la fois, mais les mêmes mises à jour pour tous les enregistrements, si vous souhaitez effectuer des mises à jour différentes pour différentes conditions, vous devez exécuter cette fois plusieurs
Exemple:
Cela mettra à jour fields1
à foo, où id
vaut 1 ou 4
let ids = [1,4];
Your_model.update({ field1 : 'foo' },{ where : { id : ids }});
Cela mettra à jour field1
à foo si id
vaut 1 et field1
à barrer si id
est 4
Your_model.update({ field1 : 'foo' },{ where : { id : 1 }});
Your_model.update({ field1 : 'bar' },{ where : { id : 4 }});
J'espère que cela effacera tous vos doutes.