sql >> Databáze >  >> RDS >> PostgreSQL

AKTUALIZUJTE pomocí OBJEDNÁVKY BY

UPDATE pomocí 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 objednávka je stále náhodná (myslím), ale hodnoty zadané do UPDATE příkazu odpovídají thetable.rowid=t1.rowid stav. Takže to, co dělám, je, že nejprve vyberu 'aktualizovanou' tabulku v paměti, jmenuje se t1 ve výše uvedeném kódu a poté, aby moje fyzická tabulka vypadala stejně jako t1 . A na pořadí aktualizací již nezáleží.

Pokud jde o true order UPDATE , Nemyslím si, že by to mohlo být pro někoho užitečné.



  1. Funkce RANK, DENSE_RANK a ROW_NUMBER v Oracle

  2. Modelování databáze pro evidenci tržeb. Část 1

  3. Počítání odkazů na záznam v tabulce pomocí cizích klíčů

  4. Node.js a Microsoft SQL Server