Bạn cần một khóa chính (hoặc một cột duy nhất) để cập nhật từng hàng của bảng. Khi thiếu một cột như vậy, bạn có thể sử dụng cột ẩn ctid
là duy nhất theo định nghĩa, ví dụ:
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