Do indywidualnego aktualizowania wierszy tabeli potrzebny jest klucz podstawowy (lub unikatowa kolumna). W przypadku braku takiej kolumny można skorzystać z ukrytej kolumny ctid
który jest unikalny z definicji, na przykład:
update foo f
set ver = rn
from (
select ctid, row_number() over (order by ctid) as rn
from foo
) s
where f.ctid = s.ctid