PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Postgresql - Zmień numerację kolumn

Uwaga:

Ma to sens tylko wtedy, gdy ac_n_circ jest NIE kolumna klucza podstawowego.

Jeśli jesteś pewien, że tego potrzebujesz (czy naprawdę?), powinno działać coś takiego:

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;

Alternatywnie:

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;

Obie instrukcje zakładają, że istnieje kolumna klucza podstawowego o nazwie id .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rozpakuj wiele tablic równolegle

  2. Jak wstawić wiersze z max(order_field) + 1 transakcyjnie w PostgreSQL

  3. Jak porównać dwa pola w laravelu i postgresie

  4. Jak modelować klaster pracy awaryjnej PostgreSQL za pomocą Docker/Kubernetes?

  5. Tworzenie sekwencji znaków w postgreSQL