PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

aggiornare i record esistenti con un numero intero univoco

È necessaria una chiave primaria (o una colonna univoca) per aggiornare singolarmente le righe di una tabella. In mancanza di tale colonna puoi usare la colonna nascosta ctid che è unico per definizione, esempio:

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