如何在sqlalchemy中编辑表的所有记录?

时间:2014-02-19 18:04:54

标签: python sqlalchemy

请考虑以下代码:

for entry in db.session.query(MyTable):
  entry.fieldX = calculate(entry.fieldA, entry.fieldB, entry.fieldC)
  db.session.add(entry) ### IS this line required or is it implicit
db.session.commit()

是否需要明确添加到会话?以下是更好的吗?

entries = []
for entry in db.session.query(MyTable):
  entry.fieldX = calculate(entry.fieldA, entry.fieldB, entry.fieldC)
  entries.append(entry)
db.session.add_all(entries)
db.session.commit()

1 个答案:

答案 0 :(得分:1)

您不需要将entry个对象添加到会话中,因为它们已经在加载它们的session中。这就足够了:

for entry in db.session.query(MyTable):
    entry.fieldX = calculate(entry.fieldA, entry.fieldB, entry.fieldC)
db.session.commit()