sql >> Database >  >> RDS >> PostgreSQL

UPDATE met ORDER BY

UPDATE met 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 volgorde is nog steeds willekeurig (denk ik), maar de waarden geleverd aan UPDATE commando komen overeen met thetable.rowid=t1.rowid voorwaarde. Dus wat ik doe is, eerst de 'bijgewerkte' tabel in het geheugen selecteren, deze heet t1 in de bovenstaande code, en vervolgens mijn fysieke tabel er hetzelfde uit laten zien als t1 . En de updatevolgorde doet er niet meer toe.

Wat betreft echte geordende UPDATE , ik denk niet dat het nuttig kan zijn voor iedereen.



  1. Een Excel-document maken vanuit een Java-programma met behulp van Apache POI

  2. Vermijd deze 4 veelvoorkomende DBA-fouten

  3. Vraag en antwoord uit onze webinarserie Parameter Sniffing

  4. QuickBooks-gegevens analyseren in Dundas BI