sql >> Database teknologi >  >> RDS >> Mysql

Brug af bulk_update_mappings i SQLAlchemy til at opdatere flere rækker med forskellige værdier

Fremgangsmåden er korrekt med hensyn til brug. Det eneste, jeg ville ændre, er noget som nedenfor

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)

Dette sikrer, at du ikke har for mange data hængende i hukommelsen, og at du ikke laver en for stor indsættelse i DB'en på én gang




  1. varbinær til streng på SQL Server

  2. Registrer, om en dato er i sommertid i MySql

  3. mysql:forbindelse afvist, når du forsøger at oprette forbindelse til localhost ved hjælp af ekstern IP

  4. Hvordan virker 'in'-klausulen i oracle