PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara UPDATE kolom secara efisien dalam tabel PostgreSQL besar menggunakan Python / psycopg2?

unnest data untuk membuat semuanya sekaligus:

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

Tabel 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. Menggunakan pg_dump untuk hanya mendapatkan pernyataan penyisipan dari satu tabel dalam database

  2. Buat aturan atau pemicu Postgres untuk secara otomatis mengonversi kolom menjadi huruf kecil atau huruf besar saat disisipkan

  3. Dimungkinkan untuk memanggil fungsi dalam skema lain dari dalam fungsi plv8?

  4. Indeks pada Stempel Waktu:Fungsi dalam ekspresi indeks harus ditandai sebagai TIDAK DAPAT DIUBAH

  5. Ikhtisar Pemrograman Sisi Server di PostgreSQL