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

Postgresql - Omnummerer kolonner

Forsigtig:

Dette giver kun mening, hvis ac_n_circ er IKKE den primære nøglekolonne.

Hvis du er sikker på, at du har brug for dette (er du virkelig?), så burde noget i stil med følgende virke:

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;

Alternativt:

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;

Begge udsagn antager, at der er en primær nøglekolonne ved navn id .




  1. MySQL-grupper med 2 kolonner, når værdier udveksles i kolonner

  2. JPA Eclipselink Database Change Notification ugyldiggør ikke cacheindtastning

  3. PDO sløjfe igennem og udskrive fetchAll

  4. MySQL Find det samlede antal indlæg pr. bruger