PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Datensätze aktualisieren, die eine Bedingung mit aufsteigender Nummer erfüllen

Das ist ein typischer Anwendungsfall für row_number() Fensterfunktion. Angenommen, Ihre Haupttabelle ist T, sollte diese Abfrage mit postgresql 8.4 oder neuer funktionieren:

update T set local_id=s.rn 
from (select id,row_number() over(order by id) as rn from T where local_site_id=2) s
 where T.id=s.id;