sql >> Base de Datos >  >> RDS >> PostgreSQL

Actualizar registros que satisfacen una condición con número creciente

Ese es un caso de uso típico para row_number() función de ventana. Suponiendo que su tabla principal sea T, esta consulta debería funcionar con postgresql 8.4 o posterior:

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;