PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

mise à jour des enregistrements existants avec un entier unique

Vous avez besoin d'une clé primaire (ou d'une colonne unique) pour mettre à jour individuellement les lignes d'une table. En l'absence d'une telle colonne, vous pouvez utiliser la colonne masquée ctid qui est unique par définition, exemple :

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