PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Aktualisieren bestehender Datensätze mit einer eindeutigen Ganzzahl

Sie benötigen einen Primärschlüssel (oder eine eindeutige Spalte), um Zeilen einer Tabelle einzeln zu aktualisieren. In Ermangelung einer solchen Spalte können Sie die versteckte Spalte ctid verwenden was per Definition eindeutig ist, Beispiel:

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