テーブルの行を個別に更新するには、主キー(または一意の列)が必要です。このような列がない場合は、非表示の列ctid
を使用できます。 これは定義上一意です。例:
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
テーブルの行を個別に更新するには、主キー(または一意の列)が必要です。このような列がない場合は、非表示の列ctid
を使用できます。 これは定義上一意です。例:
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