PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

MISE À JOUR avec ORDER BY

UPDATE avec ORDER BY :

UPDATE thetable 
  SET columntoupdate=yourvalue 
 FROM (SELECT rowid, 'thevalue' AS yourvalue 
         FROM thetable 
        ORDER BY rowid
      ) AS t1 
WHERE thetable.rowid=t1.rowid;

UPDATE la commande est toujours aléatoire (je suppose), mais les valeurs fournies à UPDATE commande correspondent à thetable.rowid=t1.rowid état. Donc, ce que je fais, c'est d'abord sélectionner la table "mise à jour" en mémoire, elle s'appelle t1 dans le code ci-dessus, puis en faisant en sorte que ma table physique ressemble à t1 . Et l'ordre de mise à jour n'a plus d'importance.

Comme pour le vrai UPDATE commandé , je ne pense pas que cela puisse être utile à qui que ce soit.