sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man effektivt UPPDATERA en kolumn i en stor PostgreSQL-tabell med Python / psycopg2?

unnest data för att göra allt på en gång:

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()

Tabell t:

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



  1. Vad är skillnaden mellan MySQL Server och MySQL Client

  2. C# Parameteriserad fråga MySQL med "in"-sats

  3. Hur man slår samman alla heltalsmatriser från alla poster till en enda matris i postgres

  4. PHP-rekursionshjälp behövs för att skapa en trädstruktur