Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Menggunakan bulk_update_mappings di SQLAlchemy untuk memperbarui beberapa baris dengan nilai yang berbeda

Pendekatannya benar dalam hal penggunaan. Satu-satunya hal yang akan saya ubah adalah sesuatu seperti di bawah ini

mappings = []
i = 0

for b, foo_x in session.query(Bar, Foo.x).join(Foo, Foo.id==Bar.foo_id):
    info = {'id':b.id, 'x': foo_x}
    mappings.append(info)
    i = i + 1
    if i % 10000 == 0:
        session.bulk_update_mappings(Bar, mappings)
        session.flush()
        session.commit()
        mappings[:] = []

session.bulk_update_mappings(Bar, mappings)

Ini akan memastikan Anda tidak memiliki terlalu banyak data yang tergantung di memori dan Anda tidak melakukan penyisipan yang terlalu besar ke DB pada satu waktu




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara menggunakan bind_result() alih-alih get_result() di php

  2. Bagaimana cara cepat MEMILIH 3 catatan acak dari tabel MySQL 30k dengan filter tempat dengan satu permintaan?

  3. Database MySQL dengan bidang unik mengabaikan spasi akhir

  4. cara menggunakan fungsi string kiri di hql

  5. Konversi DateTime untuk MySQL menggunakan C#