SQL Alchemy ORM用obj更新行?

时间:2013-10-25 00:15:37

标签: python mysql sql python-3.x sqlalchemy

我有一个5k行的mysql表,有16个字段,看起来像这样

id a b c d e f g h i j k l m n o

我需要更新每一行

first_10_a = []
first_10_a = populate_a(10)

for selected_a in first_10_a:
 updated_row = {}
 updated_row = processing_magic(selected_a)

 #update row
 entry = db.query(myTable).filter_by(a=selected_a).first()

 entry.b = updated_row['b']
 entry.c = updated_row['c']
 ...

 # how to save the entry?
 # ?

session.commit()

我正在使用SqlAlchemy ORM,所以我有一个类

class my_table(Base)

是否可以创建新对象,然后使用它来更新行?

new_obj = my_table(update_row['a'],update_row['b'],update_row['c'],...)
#??? session.query(my_table).filter(a=selected_a).update(new_obj)

如果是这样,它如何与session.flush / commit / save一起使用? (即是否可以在for循环之外进行大规模提交,这会提高性能吗?)

我不一定要这样做,所以欢迎其他建议。

0 个答案:

没有答案