PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

ATUALIZE com ORDER BY


UPDATE com 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 a ordem ainda é aleatória (eu acho), mas os valores fornecidos para UPDATE comando são correspondidos por thetable.rowid=t1.rowid doença. Então, o que estou fazendo é, primeiro selecionando a tabela 'atualizada' na memória, chamada t1 no código acima e, em seguida, fazendo minha tabela física parecer igual a t1 . E a ordem de atualização não importa mais.

Quanto a true ordenado UPDATE , eu não acho que poderia ser útil para ninguém.