PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Aggiorna i record che soddisfano una condizione con numero crescente

Questo è un tipico caso d'uso per row_number() funzione finestra. Supponendo che la tua tabella principale sia T, questa query dovrebbe funzionare con postgresql 8.4 o versioni successive:

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;