Attention :
Cela n'a de sens que si ac_n_circ
n'est PAS la colonne de clé primaire.
Si vous êtes sûr d'en avoir besoin (êtes-vous vraiment ?), alors quelque chose comme ce qui suit devrait fonctionner :
with new_numbers as (
select row_number() over (order by ac_n_circ) as new_nr,
ac_n_circ,
id
from foo
)
update foo
set ac_n_circ = nn.new_nr
from new_numbers nn
where nn.id = foo.id;
Ou :
update foo
set ac_n_circ = nn.new_number
from (
select id,
ac_n_circ,
row_number() over (order by ac_n_circ) as new_number
from foo
) nn
where nn.id = foo.id;
Les deux déclarations supposent qu'il existe une colonne de clé primaire nommée id
.