我是SQLAlchemy的新手,所以请原谅必须是一个基本问题。
我有一个数据库表properties
(在SQLALchemy中映射为对象Property
),其中包含一个字段MEBID
。我有另一个表mebs
(在SQLAlchemy中映射为MEB
)。我想将properties.MEBID字段设置为mebs.id,其中properties.PostCode == mebs.PostCode。
我可以使用命令
在SQL中完成此操作update properties, mebs set properties.mebid = mebs.id where mebs.PostCode = properties.PostCode
但我正在努力在SQLAlchemy中这样做。如果我尝试命令
session.query(Property, MEB).\
filter(Property.PostCode == MEB.PostCode).\
update({Property.MEBID : MEB.id})
我得到了
InvalidRequestError: This operation requires only one Table or entity be specified as the target.
我知道这必须是基本的,因为它是一个基本的操作,但不能解决它是如何完成的。
答案 0 :(得分:1)
更新:
for prop, meb in session.query(Property, MEB).filter(Property.PostCode == MEB.PostCode).all():
prop.MEBID=meb.id
session.add(prop)