Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Sử dụng số lượng lớn_update_mappings trong SQLAlchemy để cập nhật nhiều hàng với các giá trị khác nhau

Cách tiếp cận là đúng về cách sử dụng. Điều duy nhất tôi muốn thay đổi là một cái gì đó như dưới đây

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)

Điều này sẽ đảm bảo rằng bạn không có quá nhiều dữ liệu bị treo trong bộ nhớ và bạn không thực hiện chèn quá lớn vào DB cùng một lúc




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thể tìm ra cách chạy mysqli_multi_query và sử dụng kết quả từ truy vấn cuối cùng

  2. Nhiều khóa ngoại trong một bảng này sang một bảng khác trong mysql

  3. Làm cách nào để chuyển đổi giây (hoặc mili giây) thành dấu thời gian (hoặc chỉ một chuỗi giống như ngày tháng) trong mySql

  4. Cài đặt MySQL trên CentOS 7

  5. Cập nhật MySQL thay đổi nhiều cột không phải là nguyên tử?