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

Jak sprawnie UAKTUALNIĆ kolumnę w dużej tabeli PostgreSQL za pomocą Pythona / psycopg2?

unnest dane, aby zrobić wszystko na raz:

def create_random(i):
    return random() * i

curs.execute("select gid, number from t;")
data = curs.fetchall()

results = []
for i in data:
    results.append((create_random(i[1]), i[0]))

curs.execute("""
    update t
    set
        rnd = s.rnd,
        result = number * s.rnd
    from unnest(%s) s(rnd numeric, gid integer)
    where t.gid = s.gid;
""", (results,))

con.commit()

Tabela t:

create table t (
    gid integer,
    number integer,
    rnd float,
    result float
);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL, wyzwalacze i współbieżność w celu wymuszenia klucza tymczasowego

  2. Błąd rejestru PostgreSQL pg_ctl pod Windows 7

  3. Porządkowanie Postgres znaków UTF-8

  4. pg_config pokazuje 9.4 zamiast 9.3

  5. PostgreSQL:najlepszy sposób na łączenie małych podzbiorów dużych tabel